Python复制文件内容的代码

复制文件内容到新的文件里

先来个简单版,了解一下大概流程
大概流程:
1.打开被复制的那个文件
2.读取数据
3.创建新的文件
4.写入读取出来的内容
5.关闭文件

下面是代码演示:

# 1用户输入要复制的文件名字
old_file_name = input('输入要复制的文件名字')

# 2打开要复制的文件
old_file = open(old_file_name, 'r',encoding='utf-8')

# 3读取要复制的文件里的内容
content = old_file.read()

# 4创建一个新的文件
new_file = open('[备份]' + old_file_name, 'w',encoding='utf-8')

# 5把之前复制的内容写到新的文件里
new_file.write(content)

# 6所有的文件 都要关闭
old_file.close()
new_file.close()

这样虽然是成功了,但是文件名字好像不对劲;网上见到的的一般是 ‘xxx[附件].txt’ 这样的名字,那么我们只要稍微加一点代码就能实现。
要求在原名的后面,后缀的前面,添加[附件] 比如: 123.txt → 123[附件].txt

# 1用户输入要复制的文件名字
old_file_name = input('输入要复制的文件名字')

# 2打开要复制的文件
old_file = open(old_file_name, 'r', encoding='utf-8')

# 3读取要复制的文件里的内容
content = old_file.read()

# 4创建一个新的文件
# 4.1获取原文件的后缀的点的下标
old_index = old_file_name.rfind('.')
if old_index != -1:
    # 如果点存在 拼接新的文件名字  123 +[附件] + .txt
    new_file_name = old_file_name[:old_index] + '[附件]' + old_file_name[old_index:]
else:
    # 如果没有下标 直接拼接
    new_file_name = old_file_name + '[附件]'
# 4.2按照新的名字 打开文件
new_file = open(new_file_name, 'w', encoding='utf-8')

# 5把之前复制的内容写到新的文件里
new_file.write(content)

# 6所有的文件 都要关闭
old_file.close()
new_file.close()

如代码所示:我们只需要找到后缀的那个’点’然后根据下标,锁定位置,然后加上想加的文字就完成了.

完善:
那现在还有一个问题,如果说要复制的文件很大的时候,比如是小说,或者别的数据,那我们的代码可能会出些问题 , 在稍作修改 , 把读取文件的read函数,加上参数:read(1024) 看代码 :

# 1用户输入要复制的文件名字
old_file_name = input('输入要复制的文件名字')

# 2打开要复制的文件
old_file = open(old_file_name, 'r', encoding='utf-8')

# 4创建一个新的文件
# 4.1获取原文件的后缀的点的下标
old_index = old_file_name.rfind('.')
if old_index != -1:
    # 如果点存在 拼接新的文件名字  123 +[附件] + .txt
    new_file_name = old_file_name[:old_index] + '[附件]' + old_file_name[old_index:]
else:
    # 如果没有下标 直接拼接
    new_file_name = old_file_name + '[附件]'
# 4.2按照新的名字 打开文件
new_file = open(new_file_name, 'w', encoding='utf-8')

while True:
    # 3读取要复制的文件里的内容 每次读1024字节 1kb
    content = old_file.read(1024)
    # if len(content) ==0 :
    # if not content:
    if content == '':
        # 如果返回的是空 代表全部读完,结束循环
        break
    # print(content)
    # 5把之前复制的内容写到新的文件里
    new_file.write(content)

# 6所有的文件 都要关闭
old_file.close()
new_file.close()

这样一个简单的小案例就完成了.

发布了12 篇原创文章 · 获赞 8 · 访问量 183

猜你喜欢

转载自blog.csdn.net/qq_43665891/article/details/104203737