如何判断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!
答
使用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
您可以为每个输入文件创建新的csv.writer(和新的csv文件)。 –