python-第03章-初识模块和解释pyc

python的强大在于他有丰富和强大的标准库和第三方库(必须安装的库)

1.初识标准库(sys和os)

import sys
#print(sys.path)#打印环境变量
print(sys.argv)#

 打印出来的是绝对路径

import os
cmd_res = os.system("dir")#执行命令,不保存结果
cmd_res = os.popen("dir").read()#执行命令存在dir,用read进行取读 print(cmd_res)

 了解绝对路径和相对路径:

转自https://blog.csdn.net/databatman/article/details/49453953

下面的路径介绍针对windows,其他平台的暂时不是很了解。

在编写的py文件中打开文件的时候经常见到下面其中路径的表达方式:

open('aaa.txt')  
open('/data/bbb.txt')  
open('D:\user\ccc.txt')  

这三种表达式里面,前两个都是相对路径,第三个则是绝对路径。绝对路径比较好理解,就是最完整的路径,相对路径的相对则是不完整路径,这个相对指的就是相对于当前文件夹路径,其实就是你编写的这个py文件所放的文件夹路径!也就是说你写的相对路径必须是当前文件夹A里的文件a或者A里的文件夹B里的文件才可以open。

假设当前的py文件夹所处的位置是:D:userpublic

那么三行代码打开的文件所属的路径分别是:

D:userpublicaaa.txt

D:userpublicdatabb.txt

D:userprivateccc.txt

很好理解就是当要打开py文件所处的文件时只要使用相对路径就行了,而要使用其他文件夹的则需使用绝对路径。

注:我们常用’/‘来表示相对路径,’‘来表示绝对路径,上面的路径里\是转义的意思。此外,网页网址和linux、unix系统下一般都用’/‘。

当然我们也可以获得当前文件夹的绝对路径,如下:

import os  
path1=os.path.abspath('.')   #表示当前所处的文件夹的绝对路径  
path2=os.path.abspath('..')  #表示当前所处的文件夹上一级文件夹的绝对路径  

所以我们常设置一个path1的全局变量来表示当前的绝对路径,再加上相对路径来打开需要打开的文件,这么做是为了在不同的平台上不冲突,因为不同平台在相对路径上的表示上存在区别。

 2.pyc是什么?

     python本来是解释性的语言,但是自从pyc出现,很容易解释为编译型语言。

什么是编译型语言和解释型语言

    计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。

        计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。而这种转换的方式有两种:

编译

解释

       由此高级语言也分为编译型语言和解释型语言。

编译型语言
       使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。

特点
        在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,如exe格式的文件,以后要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需编译一次,以后运行时不需要编译,所以编译型语言执行效率高。

总结
       一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;

      与特定平台相关,一般无法移植到其他平台;

      现有的C、C++、Objective等都属于编译型语言。



解释型语言
       使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。

特点
       解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。

总结
        解释型语言每次运行都需要将源代码解释称机器码并执行,效率较低;

        只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植;


来源:CSDN
原文:https://blog.csdn.net/u012184539/article/details/81348780

先看一下python的运行过程

所以python是一种先编译后解释的文件。

原文地址:https://www.cnblogs.com/hanjiali/p/11297858.html