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

 

posted @ 2018-02-26 09:42  delphiclub  阅读(264)  评论(0编辑  收藏  举报