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.
 

 

作者:穿梭的编织者

物联沃分享整理
物联沃-IOTWORD物联网 » Python文件路径详解与介绍

发表回复