复制文件内容到新的文件里
先来个简单版,了解一下大概流程
大概流程:
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()
这样一个简单的小案例就完成了.