Python os和sys模块基本操作

os模块属性:

在Mac平台结果:

1 、os.path 输出python环境所在系统中路径

print(os.path)

<module 'posixpath' from '/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/posixpath.py'>

2、os.name 输出字符串指示正在使用的平台。如果是window 则用'nt'表示,对于Linux/Unix用户,它是'posix'。

print(os.name) # posix

3、os.curdir 系统表示当前目录所用的字符串

print(os.curdir) # .

4、os.pardir 系统中表示父目录的字符串

print(os.pardir) # ..

5、os.sep 系统路径分隔符

print(os.sep) # /

6、os.extsep 系统使用的扩展符

print(os.extsep) # .

7、os.altsep 备用路径分隔符 None

print(os.altsep) # None

8、os.pathsep 在路径中使用的组件分隔符

print(os.pathsep) # :

9、os.linesep 系统 换行符

print(os.linesep) # '\r' or '\n' or '\r\n'

10、os.defpath 可执行文件的默认搜索路径

print(os.defpath) #:/bin:/usr/bin

11、空设备文件路径

print(os.devnull) #/dev/null

os模块函数

1、os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径

cwd = os.getcwd()
print(cwd)
/Users/suxianglun/PycharmProjects/pythontest

2、os.chdir(r'/Users/') 切换当前工作目录到指定目录

os.chdir(r'/Users')
cwd = os.getcwd()
print(cwd)
/Users

3、os.makedirs('abc/allen/nv')# 创建多级目录 ,如果文件存在就会报错 FileExistsError: [Errno 17] File exists:

4、os.mkdir('efg') # 创建单级目录

5、os.removedirs('abc/allen/nv') # 删除多级目录

6、os.remove('nv') # 删除单级目录

7、os.listdir('abc/')列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

print(os.listdir('abc/'))
[allen]

8、os.system("ls") 运行shell命令,直接显示

9、os.environ 获取系统环境变量

environ({'PATH': '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Wireshark.app/Contents/MacOS:/Users/suxianglun/Library/Android/sdk/tools:/Users/suxianglun/Library/Android/sdk/platform-tools:', 'PYTHONPATH': '/Users/suxianglun/PycharmProjects/pythontest', 'ANDROID_SDK': '/Users/suxianglun/Library/Android/sdk', 'SHELL': '/bin/bash', 'PYTHONIOENCODING': 'UTF-8', 'SECURITYSESSIONID': '186a8', 'VERSIONER_PYTHON_PREFER_32_BIT': 'no', 'USER': 'suxianglun', 'TMPDIR': '/var/folders/bb/__kwbrgd34z42k0j5flvl7gm0000gn/T/', 'ANDROID_HOME': '/Users/suxianglun/Library/Android/sdk', 'COMMAND_MODE': 'unix2003', 'SSH_AUTH_SOCK': '/private/tmp/com.apple.launchd.bShDhPU8aK/Listeners', 'NDK_HOME': '/Users/suxianglun/Library/Android/sdk/ndk-bundle', 'XPC_FLAGS': '0x0', 'PYTHONUNBUFFERED': '1', 'VERSIONER_PYTHON_VERSION': '2.7', '__CF_USER_TEXT_ENCODING': '0x1F5:0x19:0x34', 'Apple_PubSub_Socket_Render': '/private/tmp/com.apple.launchd.Lmld2HUMqr/Render', 'LOGNAME': 'suxianglun', 'LC_CTYPE': 'zh_CN.UTF-8', 'XPC_SERVICE_NAME': 'com.apple.xpc.launchd.oneshot.0x10000005.pycharm', 'PWD': '/Users/suxianglun/PycharmProjects/pythontest', 'PYCHARM_HOSTED': '1', 'HOME': '/Users/suxianglun', '__PYVENV_LAUNCHER__': '/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/bin/python3.6'})

10、os.path

path = 'abc/allen/nv'
path1 = 'abc/'
path2 = 'edf/hij'

1、os.path.abspath(path)  #返回path规范化的绝对路径  
/Users/suxianglun/PycharmProjects/pythontest/abc/allen/nv

2、os.path.split(path)  #将path分割成目录和文件名二元组返回
 ('abc/allen', 'nv')

3、os.path.dirname(path) abc/allen  #返回path的目录。其实就是
os.path.split(path)返回列表中第一个元素 abc/allen


4、os.path.basename(path) nv  #返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素nv

以上三个之间的关系

os.path.split(path)=[os.path.dirname(path), os.path.basename(path)]


5、os.path.exists(path) True  #如果path存在,返回True;如果path不存在,返回False  

6、os.path.isabs(path)  False   #如果path是绝对路径,返回True

7、os.path.isfile(path) False  #如果path是一个存在的文件,返回True。否则返回False

8、os.path.isdir(path) True #如果path是一个存在的目录,则返回True。否则返回False

9、os.path.join(path1, path2)  abc/edf/hij #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

10、os.path.getatime(path) 1526625257.0 #返回path所指向的文件或者目录的最后存取时间

11、os.path.getmtime(path) 1526625250.0 #返回path所指向的文件或者目录的最后修改时间

sys模块 用于提供对解释器相关的操作

1、sys.argv 获取当前正在执行的命令行参数的参数列表(list)

print(sys.argv)  
['/Users/suxianglun/PycharmProjects/pythontest/sys模块.py']
 
print(sys.argv[0])  
/Users/suxianglun/PycharmProjects/pythontest/sys模块.py'

2、sys.platform系统名 Mac: darwin Windows:win32 Linux:linux

print(sys.platform) # darwin

3、sys.path 是一个目录列表,供Python从中查找第三方扩展模块。

print(sys.path) 

'''['/Users/suxianglun/PycharmProjects/pythontest',
'/Users/suxianglun/PycharmProjects/pythontest',
'/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python36.zip',
 '/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6',
 '/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload',
 '/usr/local/lib/python3.6/site-packages']
'''

4、sys.builtin_module_names 返回一个列表,包含内建模块的名字。

res = sys.builtin_module_names  
print(res)
('_ast', '_codecs', '_collections', '_functools', '_imp', '_io', '_locale', '_operator',
 '_signal', '_sre', '_stat', '_string', '_symtable', '_thread', '_tracemalloc',
 '_warnings', '_weakref', 'atexit', 'builtins', 'errno', 'faulthandler', 'gc',
 'itertools', 'marshal', 'posix', 'pwd', 'sys', 'time', 'xxsubtype', 'zipimport')

5、sys.exit(n) 调用sys.exit(n)可以中途退出程序,当参数非0时,会引发一个SystemExit异常,从而可以在主程序中捕获该异常。

try:
    sys.exit(1)
except SystemExit:
    print('SystemExit exit 1')

print('exited')

猜你喜欢

转载自www.cnblogs.com/suxianglun/p/9056699.html