python os模块和sys模块_[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))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值