判读文件和文件夹是否存在

文件能直接保存创建,但文件夹不行,需要先创建文件夹。

1
2
3
4
5
6
import os

if not os.path.exists('name'): # 能判断文件和文件夹
os.mkdir('name')

os.path.isfile('name') # 只能判断文件

使用os.access()方法判断文件是否可进行读写操作。

语法:os.access(path, mode)

path为文件路径,mode为操作模式,有这么几种:

1
2
3
4
5
6
7
os.F_OK: 检查文件是否存在;
os.R_OK: 检查文件是否可读;
os.W_OK: 检查文件是否可以写入;
os.X_OK: 检查文件是否可以执行.

if not os.access('name', os.F_OK):
os.mkdir('name')

try语句也能,但尽量少用。
os.makedirs(path) 多层创建目录

获取当前文件夹下所有文件

使用os.walk()函数。

1
2
3
4
5
6
7
8
9
10
dataPath = './Unprocessed/' 
def ListFile(fileDir):
ret = []
for root, dirs, files in os.walk(fileDir):
for file in files:
if os.path.splitext(file)[1] == '.txt': #其中os.path.splitext()函数将路径拆分为文件名+扩展名
ret.append(os.path.join(root, file))
return ret

files = ListFile(dataPath)

使用os模块进行分类整理

1
2
3
4
5
6
7
8
9
10
11
12
import shutil, os

path = './'
files = os.listdir(path)

for file in files:
folderName = './' + file.split('.')[-1]
if not os.path.exists(folderName):
os.makedirs(folderName)
shutil.move(file, folderName)

print('done')