os.walk() 函数遍历目录树
os.walk() # 传入字符串,即文件夹的路径;返回3个值:当前文件夹名称的字符串、当前文件夹中子文件夹的字符串的列表、当前文件夹中文件的字符串的列表。
for folderName, subfolders, filenames in os.walk('C:\\delicious'):
print('The current folder is ' + folderName)
for subfolder in subfolders:
print('SUBFOLDER OF ' + folderName + ': ' + subfolder)
for filename in filenames:
print('FILE INSIDE ' + folderName + ': '+ filename)
print('')
The current folder is C:\delicious
SUBFOLDER OF C:\delicious: cats
SUBFOLDER OF C:\delicious: walnut
FILE INSIDE C:\delicious: spam.txt
The current folder is C:\delicious\cats
FILE INSIDE C:\delicious\cats: catnames.txt
FILE INSIDE C:\delicious\cats: zophie.jpg
os.unlink(path) 函数删除path处的文件(回收站无)
os.rmdir(path) 函数删除path处的文件夹;必须为空
os.path.join() 函数返回一个文件路径字符串
>>> import os
>>> os.path.join('usr', 'bin', 'spam')
'usr\\bin\\spam'
os.getcwed() 函数取得当前工作路径的字符串
>>> import os
>>> os.getcwd()
'C:\\Python34'
os.chdir() 函数改变当前工作路径
>>> os.chdir('C:\\Windows\\System32')
>>> os.getcwd()
'C:\\Windows\\System32'
os.makedirs() 函数创建新文件夹
>>> import os
>>> os.makedirs('C:\\delicious\\walnut\\waffles')
# exist_ok() 默认为false,默认状态下,如果存在该文件夹则引发错误,设置为True,保持不变。
>>> os.makedirs('xkcd',exist_ok=True)
绝对路径和相对路径的处理
os.path.abspath(path) # 返回参数的绝对路径的字符串。
os.path.isabd(path) # 如果参数是一个绝对路径,返回True;是一个相对路径,返回False。
os.path.relpath(path,start) # 将返回从start路径到path的相对路径字符串;没有提供start参数,就使用当前工作目录作为开始路径。
>>> os.path.abspath('.') # “点”文件夹指的是绝对路径('C:\\Python34')
'C:\\Python34'
>>> os.path.abspath('.\\Scripts')
'C:\\Python34\\Scripts'
>>> os.path.isabs('.')
False
>>> os.path.isabs(os.path.abspath('.'))
True
os.path.dirname(path) # 返回一个字符串;包含path参数中最后一个斜杠之前的所有内容。
os.path.basename(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(calcFilePath), os.path.basename(calcFilePath))
('C:\\Windows\\System32', 'calc.exe')
os.path.sep() # 为正确的文件夹分隔斜杠
>>> calcFilePath = 'C:\\Windows\\System32\\calc.exe'
>>> calcFilePath.split(os.path.sep)
['C:', 'Windows', 'System32', 'calc.exe']
查看文件大小和文件夹内容
os.path.getsize(path) # 返回path参数中文件的字节数
os.listdir(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']
检查路径有效性
os.path.exists(path) # 返回布尔类型;判断path参数所指的文件或文件夹是否存在。
os.path.isfile(path) # 返回布尔类型;判断path参数是否存在,并且是一个文件。
os.path.isdir(path) # 返回布尔类型;判断path参数是否存在,并且是一个文件夹。