Python:只在for循环中运行一次命令

时间:2016-07-20 15:42:15

标签: python-2.7 loops for-loop

我有一个for循环,它在目录中创建了几个文件值的CSV。

在这个循环中,我只想创建文件并在标题中写入一次,目前我正在这样做:

    #name&path to table file
    test = tablefile+"/"+str(cell[:-10])+"_Table.csv"

    #write file
    if not os.path.isfile(test):
        csv.writer(open(test, "wt"))         
        with open(test, 'w') as output:
            wr = csv.writer(output, lineterminator=',')
            for val in header_note:
                wr.writerow([val])

并追加我的数据:

        with open(test, 'a') as output:
        wr = csv.writer(output, lineterminator=',')
        for val in table_all:
            wr.writerow([val])    

但是,当我再次运行脚本时,它会将更多数据附加到同一个.csv的底部。我想要的是第一次通过for循环,只是用一个带有标题的新的.csv覆盖任何现有的.csv然后继续附加数据,并在脚本再次运行时覆盖/重写标题。谢谢!

1 个答案:

答案 0 :(得分:0)

看起来除了文件处理之外你可能会遇到一些代码问题,但是这里有:问题基本上是在'w'模式下打开文件会覆盖文件中的所有内容,并在{{1}中打开}模式将不允许您更改标题行。

要解决此问题,您必须获取文件的内容(如果已存在),然后覆盖该文件,包括那些开头的行。

您将需要以下内容:

'a'