Пропустить заголовок из следующего файла - PullRequest
0 голосов
/ 28 сентября 2018

При объединении нескольких файлов CSV я могу либо получить заголовки из всех файлов, либо вообще не получать заголовки.Я хочу заголовок только из 1-го файла, так как все файлы имеют одинаковый заголовок, и я объединяю столбец ниже столбца.

Я новичок в питоне.На самом деле существует 23 файла CSV с одинаковыми именами в разных подпапках.Я использую цикл, чтобы прочитать их построчно.Из этого я хочу только 1-й заголовок файла.

Это мой код:

 import os, sys
`import pathlib

    # Specify directory
    # In your case, you may want something like the following
    my_directory = 'C:/Users/Arijeet/Downloads'
    file = pathlib.Path("out.csv")
    if file.exists ():
      print("file found\nremoving")
      os.remove('out.csv')
    else:
      print("file not find\ncreating")


    counter = 1

    # Start the loop
    for folder, sub_folders, files in os.walk(my_directory):
      for special_file in files:
        if special_file == 'iono_tropo.csv':
          file_path = os.path.join(folder, special_file)


          # Open and read
          with open(file_path) as read_file:
            print('Reading iono_tropo csv file ' + str(counter))
            lines=read_file.readlines()
            with open ("out.csv","a+") as f:
              f.writelines(lines)

            counter += 1

Что я могу сделать?

1 Ответ

0 голосов
/ 28 сентября 2018

Я не совсем понимаю, что вы имеете в виду, но это должно сработать, если вы хотите объединить некоторые CSV и сохранить только заголовок от первого.

with open ("file1.csv", "r") as file:
    data = file.readlines()
    data[-1] += "\n"                #Otherwise data from next file will be on the same line


for filename in ["file2.csv", "file3.csv", "file4.csv", "file5.csv"]:
    with open(filename, "r") as file:
        file.readline()             #Skips the header for all the other files
        data += file.readlines()
        data[-1] += "\n"            #Otherwise data from next file will be on the same line


#Creating the merged file
with open("merged.csv", "w") as merged:
    for line in data:
        merged.write(line)
...