Python:这段代码在替换我的文件内容时有没有办法写入我的文件?
我有一个类似这样的输入文件:Python:这段代码在替换我的文件内容时有没有办法写入我的文件?,python,io,Python,Io,我有一个类似这样的输入文件: blah blah blah blah ;blah blah blah blah ;blah blah blah blah blah blah blah blah blah blah 我的程序所做的是在看到分号时分割行,然后转到下一行,这是我希望它做的(我希望它忽略分号位),产生如下结果: blah blah blah blah ;blah blah blah blah ;blah blah blah blah blah blah blah blah bl
blah blah
blah blah ;blah blah
blah blah ;blah blah
blah
blah blah
blah blah
blah blah
blah
我的程序所做的是在看到分号时分割行,然后转到下一行,这是我希望它做的(我希望它忽略分号位),产生如下结果:
blah blah
blah blah ;blah blah
blah blah ;blah blah
blah
blah blah
blah blah
blah blah
blah
但是,当它写入文件时,它会将新代码附加到旧代码中,我只想在文件中包含新代码。有什么办法可以做到这一点吗?多谢各位
f = open ('testLC31.txt', 'r+')
def after_semi(f):
for line in f:
yield line.split(';')[0]
for line in after_semi(f):
f.write('!\n' + line)
f.close()
当您打开文件时,
r+
命令Python追加到文件中。听起来你想覆盖这个文件。w+
标志将为您执行此操作,请参阅
模式“r+”、“w+”和“a+”打开文件进行更新(读写);请注意,“w+”会截断文件
我建议将与
一起使用,以确保文件始终处于关闭状态,这将为您指明正确的方向:
with open ('testLC31.txt', 'w+') as fout:
for line in after_semi(f):
fout.write('!\n' + line)
希望有帮助 我会使用
re.sub
如下所示
import re
f = open('file', 'r') # Opens the file for reading
fil = f.read() # Read the entire data and store it in a variabl.
f.close() # Close the corresponding file
w = open('file', 'w') # Opens the file for wrting
w.write(re.sub(r';.*', r'', fil)) # Replaces all the chars from `;` upto the last with empty string.
w.close()
谢谢,我试过了,但它只给了我一个空文件哦,等等,
w+
标志会截断您打开的文件,因此如果您正在写入从testLC31.txt
文件读取的同一个文件,则不会包含废话;废话
text。我误解了这一点。删除前面的空格代码>,使用r'\s*;*”代码>正则表达式。