我有一个文件,我正在打开并尝试写入。我试图在我的文件中的两个注释之间写入数据。但是,当我运行我的程序时,文件被删除,没有任何内容被写入。我也没有收到任何错误。我认为这是因为我需要阅读然后写,但我不确定如何继续。
with open(dipolepath+dipole+extension, 'w') as output_data:
# Skips text before the beginning of the interesting block:
for line in output_data:
if line.strip() == '//Antenna Structure': # Or whatever test is needed
break
# Writes text until the end of the block:
output_data.write(points3)
for line in output_data: # This keeps writing the file
if line.strip() == '//Output Field Info':
break
答案 0 :(得分:1)
每当您以w
模式打开文件时,其内容都会被清除。
您需要以r+
模式打开才能从文件的开头开始而不清除它
如果您尝试在评论之间添加内容,请检查您的逻辑。如果你看到评论,那就是你开始写作的时候,而不是什么时候打破
例如
start = False
for line in output_data:
output_data.write(line) # If you want to preserve the content
if line.strip() == '//Antenna Structure': # Or whatever test is needed
start = True
if start:
# Writes text until the end of the block:
output_data.write(points3)
if start and line.strip() == '//Output Field Info':
break
答案 1 :(得分:0)
以“w”模式打开文件会在您向其写入任何内容之前删除该文件的内容。您可能想要使用“r +”模式,它允许读写。只需改变
open(dipolepath+dipole+extension, 'w')
到
open(dipolepath+dipole+extension, 'r+')