Python 文件操作综合案例
# 案例 # 文件的复制 # 要求 # 将一个文件, 复制到另外一个副本中 # 步骤分析 # 1. # 只读模式, 打开要复制的文件 import os import shutil path = "files" if not os.path.exists(path): exit() os.chdir(path) source_file = open("a.txt", "r") #encoding = "utf-8" dst_file = open("b.txt", "a") # 追加模式, 打开副本文件 # 2. # 从源文件中读取内容 content = source_file.read() # 写入到目标文件中 dst_file.write(content) # 3. # 关闭源文件和目标文件 source_file.close() dst_file.close() # 注意 # 大文件处理 source_file = open("big.txt", "r", encoding="utf-8") #encoding = "utf-8" dst_file = open("big_bak.txt", "w", encoding="utf-8") # 追加模式, 打开副本文件 # 大文件处理主要是在读取的时候以一定的字节量来读取 while True: content = source_file.read(1024) if (len(content) == 0): break dst_file.write(content) # 关闭源文件和目标文件 source_file.close() dst_file.close() # 文件分类, 并生成文件清单 file_list = os.listdir() #['1.jpg', '2.jpg', 'a.avi', 'a.txt', 'b.avi', 'b.txt', 'big.txt', 'big_bak.txt'] # 给定一批文件 # 1. # 按照文件后缀名, 划分到不同的文件夹 # 文件夹命名: 后缀名 # 结果 for file_name in file_list: # print(file_name) index = file_name.rfind(".") # print(index) if index == -1: continue extension = file_name[index + 1:] # print(extension) if not os.path.exists(extension): os.mkdir(extension) shutil.move(file_name,extension) # 2. # 生成.txt格式的文件清单 # 标明, 不同的格式, 分别有哪些文件 # 示例 def fileListToFile(dir, file): file_list = os.listdir(dir) for file_name in file_list: newFile = dir + "/" + file_name # 这个要放在这里 if os.path.isdir(newFile): # print(newFile) file.write(newFile + "\n") fileListToFile(newFile,file) else: # print("\t" + file_name) file.write("\t" + file_name + "\n") f = open("list.txt", "a") fileListToFile("files", f) f.close() #list.txt # files/avi # a.avi # b.avi # files/jpg # 1.jpg # 2.jpg # files/txt # a.txt # b.txt # big.txt # big_bak.txt