[Python] python os.path和sys模块常用函数

sys模块

sys模块提供了由解释器使用或者维护的变量,以及和解释器交互的函数访问。
常用类包:

sys.argv

在执行python脚本时命令中参数的列表,argv[0]表示脚本名,如果加了-c时,argv[0]表示 ‘-c’。

可以通过如下脚本进行测试:

import sys 
print("hello python")
def main():
    for i in range(len(sys.argv)):
        print(sys.argv[i])

if __name__ == "__main__":
    main()

在终端运行:

@ubuntu:~/workspace/TestDemo$ python test.py 
hello python
test.py
@ubuntu:~/workspace/TestDemo$ 

Python -c [python语句]可以直接运行python语句,如:

python -c "print('hello world')"

sys.path

指定解释器搜索模块的路径,根据PYTHONPATH环境变量和以来安装的值进行初始化。
因此,如果要想将自实现的文件加入到全部,则可以通过该list来实现,如:

sys.path.insert(0,os.path.dirname(__file__))

sys.platform

获取当前系统平台,值如下:

System platform value
Linux ‘linux’
Windows ‘win32’
Windows/Cygwin ‘cygwin’
Mac OS X ‘darwin’

使用时:

if sys.platform.startswith('win'):
    # windows-specific code here...
elif sys.platform.startswith('linux'):
    # Linux-specific code here...

sys.stdin、sys.stdout、sys.stderr`

解释器的标准输入、输出、错误对象。
stdin用于所有的交互式输入(包括对input()的调用);
stdout用于输出print()和表达式语句以及input()的提示。
解释器自己的提示和错误信息会走到stderr中。
将控制台输出重定向到文件中,就可以使用到sys.stdout.如:

import sys
sys.stdout.write("sdf")
# 如果对文件进行读取操作,文件操作权限必须是writable
fh = open("file1.txt", "w")
sys.stdout = fh
print("Use sys.stdout output")
fh = open("file1.txt", "r")
sys.stdin = fh
content = input(fh)
print(content)

os.path模块

该模块实现了一些常用函数,用来处理和操作文件路径。

os.path.abspath(filename)

返回给定路径的绝对路径。

os.path.basename(filename)

返回给定路径的文件名。

os.path.commonpath(pathlist)

返回路径列表中相同的部分。

os.path.commonprefix(pathlist)

返回路径列表中相同的部分,在比较是否相同时以字节为单位。

os.path.dirname(path)

返回给定文件路径的路径部分

os.path.realpath(path)

返回指定文件名的规范路径,消除路径中遇到的任何符号链接

os.path.exists(path)

判断该路径是否存在
一般在获取对应文件的路径时,可以dirname()和realpath搭配使用:

os.path.dirname(os.path.realpath(__file__))

file表示当前文件

os.path.join(path, *paths)

将给定的一个或多个路径智能地进行连接并返回,如果出现绝对路径,则之前连接的清除掉,并从该绝对路径起重新进行连接。

os.path.split(path)

将给定的path路径分割为(header,tail)的形式并返回,tail是路径中最后一部分,header是路径中除tail之外的部分,如果路径已/结尾,则tail为空的字符串,如:

>>> os.path.split("/a/b/c/d")
('/a/b/c', 'd')

如果路径中没有/,则header为空字符串,如:

>>> os.path.split("adbc")
('', 'adbc')
>>> 

os.path.splitext(path)

以空串'''.'将路径拆分,并返回(root,ext)形式的元组,root+ext=path,可以用该方法来剥离扩展名,如:

>>> os.path.splitext("E:\Python\Python3\split.py")  
('E:\\Python\\Python3\\split', '.py')
>>> 
>>> os.path.splitext("E:\Python\Python3")          
('E:\\Python\\Python3', '')
>>> 
>>> os.path.splitext("split.py")[0]        
'split'
>>> 

有了sys和os.path模块,如果要向将自己的模块配置到python环境变量中,则可以通过如下方式:

sys.path.insert(0,os.path.abspath(modules))

猜你喜欢

转载自blog.csdn.net/fightfightfight/article/details/79906972