有更好的方法吗?
Is there a better way of doing this?
是否有另一种方法来检查是否是第一个?
我一直在使用 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())
既然 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")
是否有另一种方法来检查是否是第一个?
我一直在使用 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())
既然 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")