python - 如何附加到文件而不是创建具有相同名称的新文件
问题描述
我正在尝试在 python 中将一些文本附加到文件的开头,但是它不是将文本附加到文件,而是创建一个具有相同名称的新文件,并写入该文件。
#!/usr/bin/env python3
import os
files = 'f0_ascii'
x = 0
for file in os.listdir(files):
x += 1
with open(file, 'a') as file2:
y = 0
for line in file:
y += 1
file2.seek(0, 0)
string_in_string = "sometext {}".format(y - 10)
file2.write(string_in_string)
file2.close()
if x == 1:
exit()
我希望它在现有文件的开头附加"sometext {}".format(y-10)
解决方案
如果指定了文件夹目录,它将起作用:
import os
files = 'my_folder'
def line_prepender(filename, line):
with open(filename, 'r+') as f:
content = f.read()
f.seek(0, 0)
f.write(line.rstrip('\r\n') + '\n' + content)
for file in os.listdir(files):
y = 0
for line in file:
y += 1
line_prepender(r'my_folder\{}'.format(file), "sometext {}".format(y - 10))
如果未指定,open()
则无法在当前目录中找到您的文件,因此它只是在那里创建并打开它们。
编辑:使用此处的一些代码使该脚本完全按照您的意愿执行。
推荐阅读
- python - Pytorch 在 __init__() 中定义层和在 forward() 中直接使用有什么区别?
- wordpress - WordPress 网站上的建议或请求表单,如何自动知道来自哪个用户?
- javascript - Express / HelmetJS / CSP 和 Gzip 资产
- mongodb - MongoDB - 未授权添加副本集成员,但 Mongo Auth 已禁用
- dart - 并排制作两个小部件
- php - 我无法在 PHP 中正确定义变量
- logging - Liferay 7 - 实时日志查看器
- mysql - 使用 JPA 在 MySQL 中大量删除行的最佳实践
- ionic-framework - 将类导入 ionic 3 并在实例化类时出错
- soap - 为什么 SOAP 客户端需要知道 Web 服务的接口?