Python文件路径详解与介绍
1. 绝对路径与相对路径
有以下两种方法可指定⼀个文件路径。
“绝对路径”,总是从根文件夹开始。 “相对路径”,相对于程序的当前工作目录。
还有“点”(.)和“点点”(..)文件夹。它们不是真正的文件夹,而是可以在路径中使用的特殊名称。单个的句点(“点”)用作文件夹名称时,是“这个目录”的缩写。两个句点(“点点”)的意思是父文件夹。
2. ⽤os.makedirs()创建新文件夹
import os
os.makedirs('C:\\delicious\\walnut\\waffles')
这不仅将创建C:\delicious⽂件夹,也会在C:\delicious下创建walnut文件夹,并在C:\delicious\
walnut中创建waffles文件夹。也就是说,os.makedirs()将创建所有必要的中间文件夹,目的是确保完整路径名存在。
3. 显示绝对路径的字符串
调用os.path.abspath(path)
os.path.abspath('.')
在调用os.path.abspath()时,
当前目录是C:\Users\Al\AppData\Local\ Programs\Python\ Python37,
所以“点”文件夹指的是绝对路径'C:\\Users\\Al\\AppData\\Local\\Programs\\Python\\Python37'。
4. 获取当前工作路径
利用Path.cwd()函数,可以取得当前工作路径的字符串,并可以利用os.chdir()改变它
from pathlib import Path
import os
Path.cwd() # 获取当前工作目录
print(Path.cwd())
os.chdir('C:\\Windows\\System32') # 改变当前工作目录
print(Path.cwd())
5. 取得文件路径的各部分
6. 查看文件大小和文件夹内容
1)调用os.path.getsize(path)将返回path参数中文件的字节数。
2)调用os.listdir(path)将返回文件名字符串的列表,包含 path参数中的每个文件
import os
print(os.path.getsize('C:\\Windows\\System32\\calc.exe'))
print(os.listdir('C:\\Windows\\System32'))
# 计算这个⽬录下所有⽂件的总字节数
totalSize = 0
for filename in os.listdir('C:\\Windows\\System32'):
totalSize = totalSize + os.path.getsize(os.path.join('C:\\Windows\\System32',
filename))
print(totalSize)
如果要处理特定文件,那么使用glob()方法比listdir()更简单。
from pathlib import Path
p = Path('C:/Users/Gordon/Desktop')
print(list(p.glob('*.txt')))
print(list(p.glob('project?.docx'))) #问号(?)代表任意单个字符
7. 遍历目录树
使用os.walk()函数
import os
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('')
os.walk()函数被传入⼀个字符串值,即⼀个文件夹的路径。可以在⼀个for循环语句中使用os.walk()函数遍历目录树,在循环的每次迭代中返回以下3个值。
当前文件夹名称的字符串。当前文件夹中子文件夹的字符串的列表。当前文件夹中文件的字符串的列表。
运行后输出如下:
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
The current folder is C:\delicious\walnut
SUBFOLDER OF C:\delicious\walnut: waffles
The current folder is C:\delicious\walnut\waffles
FILE INSIDE C:\delicious\walnut\waffles: butter.txt.
作者:穿梭的编织者