# 文件操作

# 1. 如何创建文件夹?

if os.path.exists(LAST_MODE_PATH):
    pass
else:
    os.makedirs(LAST_MODE_PATH) 
1
2
3
4

# 2. 如何判断文件/文件夹是否存在?

import os
os.path.exists(test_dir)

if os.path.exists(test_dir) != True:
    os.makedirs(test_dir)
1
2
3
4
5

# 3. 如何得到文件的后缀?

def file_extension(path):
    return os.path.splitext(path)[1][1:]
1
2

# 3. 如何得到文件夹内的文件列表?

file_list = os.listdir(data_path)
file_list.sort()
1
2

# 4. 如何保存一串字符到文本?

def savetxtfile(string, filename):
text_file = open(filename, "w")
text_file.write(string)
text_file.close()
1
2
3
4

# 5. 如何获取文件的行数?

num_lines = sum(1 for line in open('myfile.txt'))
1

# 6. 如何遍历规范的多层文件夹?

import os 
data_dir = "./Pentacam/1. Raw Data"

for classType in os.listdir(data_dir):
    for patient in os.listdir(data_dir + "/" + classType):
        for file in os.listdir(data_dir + "/" + classType + "/" + patient):
            if(not file.endswith('.CSV')):
                inputfile = data_dir + "/" + classType + "/" + patient + "/" + file
                print(inputfile)
                os.remove(inputfile)
            
1
2
3
4
5
6
7
8
9
10
11

# 7. 如何判断文件是否是以某个后缀结尾?

if(file.endswith('.CSV')):
    print("This file is end with .CSV.")
1
2

# 8. 如何得到修改时间最新的文件夹?

import glob
# Get the latest folder name 
list_of_files = glob.glob('./wb_rec/*')
latest_file = max(list_of_files, key=os.path.getctime)
1
2
3
4

# 9. 如何获取文件路径?

import os
# 当前路径
os.getcwd()
#父目录
os.path.dirname(os.getcwd())
# 
1
2
3
4
5
6

# 如何删除文件,文件夹

  • os.remove() removes a file.
  • os.rmdir() removes an empty directory.
  • shutil.rmtree() deletes a directory and all its contents.

参考