2016-08-01 3 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 отправить это на это [Код Review] (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

Oh .. duh. Спасибо! – Chris

Смежные вопросы