gpt4 book ai didi

python - 使用修改重写文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:28 24 4
gpt4 key购买 nike

我有一个名为 inputs.txt 的文件,我试图用一个函数的值替换该文件中的一个字符串。问题是我无法写入该文件。我刚开始学习 python,所以为此苦苦挣扎。请提供任何帮助。

当我把它作为一个字符串时,它工作正常

文件内容

[aws_s3://MAC_10]
key_name = ABC/YYZZ/daily

期望的输出

[aws_s3://MAC_2014-12-31]
key_name = ABC/YYZZ/daily/2014-12-31_

我编写了获取时间值的函数

def change_time(match):
match = match.group()
date_time = datetime.datetime.now()
value = str(date_time.strftime('%Y-%m-%d'))
return value

我可以打开文件并读取和匹配内容,但无法写入

f=open('test.txt','w')

print re.sub(r'_[0-9-]+',change_time,string) 将需要更改的第一行输出到stdout,但是如何修改文件内容?

最佳答案

读取和写入同一个文件可能很棘手,但标准库的 fileinput 模块对此提供了很好的支持:

import fileinput

for line in fileinput.input(['inputs.txt'], inplace=True):
print re.sub(r'_[0-9-]+', change_time, line) ,

我给出了 print 的 Python 2 形式,因为它似乎就是您正在使用的。无论如何,在 Python 3 中它会相似且更具可读性:

    print(re.sub(r'_[0-9-]+', change_time, line), end='')

无论如何,fileinput 重定向标准输出,以便所有 print 都转到您正在阅读的文件(当 inplace=True 已设置)——您需要打印出您正在阅读的所有内容,并需要进行更改。根据需要处理任意数量的文件(请注意,第一个参数是文件名列表),无论它们有多大等等。

参见 https://docs.python.org/2/library/fileinput.html对于更多,更多:-)

关于python - 使用修改重写文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27723717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com