1
os.getcwd() 取得当前当前工作路径的字符串
os.chdir() 改变当前当前工作路径的字符串
>>> import os
>>> os.getcwd()
'C:\\Python34'
>>> os.chdir('C:\\Windows\\System32')
>>> os.getcwd()
'C:\\Windows\\System32'
如果要更改的当前工作目录不存在,Python 就会显示一个错误。
>>> os.chdir('C:\\ThisFolderDoesNotExist')
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
os.chdir('C:\\ThisFolderDoesNotExist')
FileNotFoundError: [WinError 2] The system cannot find the file specified:
'C:\\ThisFolderDoesNotExist'
2
os.makedirs() 创建新文件夹
>>> import os
>>> os.makedirs('C:\\delicious\\walnut\\waffles')
这不仅将创建 C:\delicious 文件夹,也会在 C:\delicious 下创建 walnut 文件夹,并在 C:\delicious\walnut 中创建 waffles 文件夹。也就是说,os.makedirs()将创建所有必要的中间文件夹,目的是确保完整路径名存在。图 8-3 展示了这个文件夹的层次结构。
3
os.path.join() 来构建所有操作系统上都有效的路径
>>> import os
>>> os.path.join('usr', 'bin', 'spam')
'usr\\bin\\spam'
4
os.path.dirname(path) 将返回一个字符串,它包含 path 参数中最后一个斜杠之前的所有内容。
>>> path = 'C:\\Windows\\System32\\calc.exe'
>>> os.path.basename(path)
'calc.exe'
>>> os.path.dirname(path)
'C:\\Windows\\System32'
如果同时需要一个路径的目录名称和基本名称,就可以调用 os.path.split(),获得这两个字符串的元组,像这样:
>>> calcFilePath = 'C:\\Windows\\System32\\calc.exe'
>>> os.path.split(calcFilePath)
('C:\\Windows\\System32', 'calc.exe')
可以调用 os.path.dirname()和 os.path.basename(),将它们的返回值放在一个元组中,从而得到同样的元组。
>>> (os.path.dirname(calcFilePath), os.path.basename(calcFilePath))
('C:\\Windows\\System32', 'calc.exe')
5
调用 os.path.getsize(path)将返回 path 参数中文件的字节数。
调用 os.listdir(path)将返回文件名字符串的列表,包含 path 参数中的每个文件
>>> os.path.getsize('C:\\Windows\\System32\\calc.exe')
776192
>>> os.listdir('C:\\Windows\\System32')
['0409', '12520437.cpx', '12520850.cpx', '5U877.ax', 'aaclient.dll',
--snip--
'xwtpdui.dll', 'xwtpw32.dll', 'zh-CN', 'zh-HK', 'zh-TW', 'zipfldr.dll']
6
如果你提供的路径不存在,许多 Python 函数就会崩溃并报错。os.path 模块提供了一些函数,用于检测给定的路径是否存在,以及它是文件还是文件夹。
• 如果 path 参数所指的文件或文件夹存在,调用os.path.exists(path)将返回 True,否则返回 False。
• 如果 path 参数存在,并且是一个文件,调用 os.path.isfile(path)将返回 True,否则返回 False。
• 如果 path 参数存在,并且是一个文件夹,调用 os.path.isdir(path)将返回 True,否则返回 False。
>>> os.path.exists('C:\\Windows')
True
>>> os.path.exists('C:\\some_made_up_folder')
False
>>> os.path.isdir('C:\\Windows\\System32')
True
>>> os.path.isfile('C:\\Windows\\System32')
False
>>> os.path.isdir('C:\\Windows\\System32\\calc.exe')
>False
>>> os.path.isfile('C:\\Windows\\System32\\calc.exe')
True