2016-08-01 119 views
0

是否有另一种检查方式是否是第一件事?有没有更好的方法来做到这一点?

我一直在使用for i,f in enumerate(read_files)其中我列举了一个文件列表,并使用if语句来检查i == 0。我很好奇,是否有不同的(更好,更快,更少类型)的方式来做到这一点?

read_files = glob.glob("post_stats_*.tsv") 
with open("result.tsv", "w") as outfile: 
    for i,f in enumerate(read_files): 
     with open(f, "r") as infile: 
      metric_name = (f.strip(".tsv").split("_")[2]) 
      if i == 0: 
       outfile.write(metric_name.upper() + "\n" + infile.read()) 
      else: 
       outfile.write("\n" + metric_name.upper() + "\n" + infile.read()) 
+0

因为你的代码已经工作的,最好的SE发布此上是[代码审查(HTTP://代码审查。 stackexchange.com/)。 –

+0

@ OrangeFlash81酷,会做。 – Chris

+2

你是否只需要'if'来避免用空行启动输出文件? –

回答

3

因为它似乎在if的唯一用途是为了避免在输出文件的开始一个空行,这会让空行文件的内容怎么样?这将导致一个空行,在那里,它不可能伤到文件的末尾:

read_files = glob.glob("post_stats_*.tsv") 
with open("result.tsv", "w") as outfile: 
    for f in read_files: 
     with open(f, "r") as infile: 
      metric_name = (f.strip(".tsv").split("_")[2]) 
      outfile.write(metric_name.upper() + "\n" + infile.read() + "\n") 
+0

哦..呃。谢谢! – Chris

相关问题