文件被覆盖,尽管有条件

时间:2013-05-16 15:39:29

标签: python io conditional

我有一些文件,有些是填充的。尝试在每个未填充的文件中放置一个零,使用文件名列表,并测试每个文件的内容:

for n in list_of_files:
    nam = n[2]
    fil = '.'.join([nam, 'fil'])    # adds .fil extension to filename
    with open(fil,'r+') as f:
        if not f.readline():        # check file contents
            print 'empty file: ' + fil
        f.seek(0)
        f.write('0')

脚本已经使用if f.readline() print 'nam'之类的行标识了包含其中某些内容的文件,但是当运行上述块时,所有文件都被覆盖了。不用担心,但想知道发生了什么。

1 个答案:

答案 0 :(得分:2)

您的问题是,无论文件是否已填充,您都在编写,请尝试使用

for n in list_of_files:
    nam = n[2]
    fil = '.'.join([nam, 'fil'])    # adds .fil extension to filename
    with open(fil,'r+') as f:
        if not f.readline():        # check file contents
            print 'empty file:', fil
            f.seek(0)
            f.write('0')