有没有更好的方法呢?

时间:2016-08-01 16:45:59

标签: python enumerate

还有另一种方法可以检查某些事物是否先出现?

我一直在使用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()) 

1 个答案:

答案 0 :(得分: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")