不要在两条评论之间写入我的文件

时间:2018-03-24 19:44:44

标签: python

我有一个文件,我正在打开并尝试写入。我试图在我的文件中的两个注释之间写入数据。但是,当我运行我的程序时,文件被删除,没有任何内容被写入。我也没有收到任何错误。我认为这是因为我需要阅读然后写,但我不确定如何继续。

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

2 个答案:

答案 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+')