如何检查文件是否为空?如果没有,在写之前将其清空?

时间:2010-07-15 06:48:50

标签: python file-io

myfile = open('out.txt', 'a')  
myfile.write(caption)

每当我的脚本运行时,我会写这样的东西。但是在第一次运行之后,它继续向文件添加相同的数据。如何检查它是否为空,并告诉它只有在空的情况下才能写入?

4 个答案:

答案 0 :(得分:9)

如果你想首先清除文件中的任何现有数据并写下你的输出文件是否为空,那很简单:只需使用

open('out.txt', 'w')

'w'表示“写”,'a'表示“追加”。

如果你想检查文件中是否有数据,如果有数据则根本不写任何内容,那么Hypnos的回答是合适的。如果文件不为空,请检查文件大小并跳过文件编写代码。

答案 1 :(得分:5)

您可以使用以下方法检查目标文件的文件大小:

import os
b = os.path.getsize("path_to_file")

答案 2 :(得分:3)

您可以使用file.read([size])检查文件是否为空 - 如果它从第一次返回None而不是空。

python doc看一下。

答案 3 :(得分:0)

  1. 打开文件
  2. 检查尺寸
  3. 写大小> 0
  4. 通过在检查尺寸之前打开文件,可以避免任何竞争条件。

    import os
    
    with open('out.txt', 'a') as myfile:
        if os.path.getsize(myfile) == 0:
            myfile.write(caption)