如何判断python文件的开始?

问题描述:

目前,我读了一些文本文件,像这样写使用fileinput一些CSV行:如何判断python文件的开始?

out_file= open('f.csv', 'wb') 
csv_w = csv.writer(out_file, delimiter="\t", encoding='utf-8' ) 
os.chdir(sys.argv[1]) 
for line in fileinput.input(glob.glob("*.txt")): 
    csv_w.writerow('something') 

这工作得很好,但我想写信给单独的输出文件。目前循环读取一个文件,然后继续下一个,只是写入一个大的csv文件。

我如何判断当前正在读取的输入文件是不同的(即,我已达到前一个文件的EOF,现在是新的BOF)?我可以存储文件名并在每次阅读新行时检查它,但我想Python有一些巧妙的功能。 TIA!

+0

您可以为每个输入文件创建新的csv.writer(和新的csv文件)。 –

使用fileinput.filename告诉正在架设到文件的名称:

#!/usr/bin/env python 

import fileinput 
import glob 
for line in fileinput.input(glob.glob('*')): 
    print(fileinput.filename()) 
's.txt' 
't.txt' 

如果“文件”,其实是一个目录,则会失败。因此,以最好的IETAFFTFP方式:

import fileinput 
import glob 
for line in fileinput.input(glob.glob('*')): 
    try: 
     print(fileinput.filename()) 
    except IsADirectoryError as e: 
     print(e) 
+0

谢谢塞巴斯蒂安。除了检查旧值以外,是否有任何方法可以判断它是否发生了变化? – schoon