环境配置:Windows,Python3
dirname, basename
文件有两个关键属性: “文件路径”和“文件名”,也可以称为“目录名称”(directory name)和“基本名称”(base name)。
例如:对于C:\Users\YoYo\client.txt
来说,文件 client 的 dirname 是'C:\User\YoYo'
,它的 basename 是 'client.txt'
。
“绝对路径”:从根文件夹开始的路径。例如: C:\Windows\System32
“相对路径”:它相对于程序的当前工作目录。
在路径的表述中,当前工作目录(当前所在文件夹)用'.'
表示,当前工作目录的父文件夹用'..'
。
例如:如果当前工作目录为 C:\Windows\System32
,则 C:\Windows\Resources
可以表示为..\Resources
os.getcwd()
:获取当前工作目录。
os.chdir(path)
:更改当前工作目录。
os.makedirs(path)
:新建文件夹。
例如:
os.getcwd()
## 'C:\\Python38\\Lib\\idlelib'
os.chdir('C:\\Users\\YoYo\\Downloads')
os.getcwd()
## 'C:\\Users\\YoYo\\Downloads'
os.makedirs('C:\\Users\\YoYo\\Friends')
os.chdir('..\Friends')
os.getcwd()
## 'C:\\Users\\YoYo\\Friends'
os.makedirs('Ross') # 在当前工作目录下新建文件夹'Ross'
os.makedirs('.\Phoebe') # 在当前工作目录下新建文件夹'Phoebe'
os.listdir(path)
返回 path 中所有文件名的字符串列表。
>>> os.listdir('C:\\Users\\YoYo\\Friends')
['Chan&Joey.jpg', 'Chandler.jpg', 'Mo&phoe.jpg', 'Monica.jpg', 'Phoebe', 'pic1.jpg', 'pic2.jpg', 'pic3.jpg', 'pic4.jpg', 'Rachel.jpg', 'Rachel2.jpg', 'Ross']
os.walk(path)
遍历path目录树。在每次迭代中返回3个值:
例如:
for foldername, subfolders, filenames in os.walk('C:\\Users\\YoYo\\HeadFirstPython\\EnglishSongs'):
print('Current folder is:\n%s'%foldername)
for subfolder in subfolders:
print(' ' + subfolder)
for filename in filenames:
print(' ' + filename)
os.path.join()
:对给定字符串生成一个正确格式的文件路径字符串。
例如:
os.path.join('C:\\Users\\YoYo', 'hello.txt')
## 'C:\\Users\\YoYo\\hello.txt'
os.path.join('Abc', 'def','001')
## 'Abc\\def\\001'
os.path.abspath(path)
返回 path 的绝对路径字符串。
os.path.isabs(path)
返回path是否为绝对路径的布尔值结果。
os.path.relpath(path, start)
返回 从 start 到 path 的相对路径。
例如:
os.path.abspath('.')
## 'C:\\Users\\YoYo\\Friends'
os.path.isabs('.')
## False
os.path.isabs('C:\\Users\\YoYo\\ABC') # os.path.isabs()仅仅判断这个绝对路径字符串是否合法,并不考察该路径是否存在,系统中不存在ABC文件或文件夹
## True
>>> os.path.relpath('DEF','C:\\Python38') #系统中不存在DEF文件或文件夹
## '..\\Users\\YoYo\\Friends\\DEF'
os.path.relpath('C:\\Users\\YoYo\\Friends','C:\\Python38')
## '..\\Users\\YoYo\\Friends'
os.path.relpath('C:\\Python38','C:\\Windows\\System32')
## '..\\..\\Python38'
os.path.dirname(path)
返回 path 的路径名称字符串,即最后一个 \ 之前的内容。
os.path.basename(path)
返回 path 的基本名称字符串, 即最后一个 \ 之后的内容。
os.path.split(path)
返回一个元组,包括路径名称和基本名称。
>>> os.path.dirname('C:\\Windows\\System32\\calc.exe')
'C:\\Windows\\System32'
>>> os.path.basename('C:\\Windows\\System32\\calc.exe')
'calc.exe'
>>> os.path.dirname('C:\\Windows\\System32\\ABC') # 系统中不存在ABC文件或文件夹
'C:\\Windows\\System32'
>>> os.path.basename('C:\\Windows\\System32\\ABC')
'ABC'
>>> os.path.split('C:\\Windows\\System32\\calc.exe')
('C:\\Windows\\System32', 'calc.exe')
>>> os.path.split('C:\\Windows\\System32\\ABC') # 系统中不存在ABC文件或文件夹
('C:\\Windows\\System32', 'ABC')
os.path.exists(path)
判断 path 是否存在,并返回布尔值。
os.path.isdir(path)
判断 path 是否为路径,并返回布尔值。
os.path.isfile(path)
判断 path 是否为文件,并返回布尔值。
例如:
>>> os.path.exists('C:\\Windows\\System32\\ABC')
False
>>> os.path.exists('C:\\Users\\YoYo\\Friends')
True
>>> os.path.isdir('C:\\Users\\YoYo\\Friends')
True
>>> os.path.isfile('C:\\Users\\YoYo\\Friends')
False