У меня есть два CSV-файла с разделителями табуляции (с заголовками), которые мне нужно объединить в python.
Кроме того, в объединенный файл я хочу добавить в конце столбец для идентификации файлов, потому что, хотя они имеют одинаковый формат, у них разные данные, которые мне нужно будет разделить позже. Итак, я хочу добавить столбец с именем «источник» в каждую строку вывода, которая равна 0 для файла1 и 1 для файла2.
Я зашел так далеко, что использовал модуль csv, но writerow добавляет дополнительный символ новой строки между каждой записываемой строкой, и этот код ничего не записывает из файла2. Что я здесь делаю неправильно? Кроме того, как добавить дополнительный столбец «источник» в объект line?
import os, csv
path1 = os.path.abspath("../data/file1.txt")
path2 = os.path.abspath("../data/file2.txt")
merged_path = os.path.abspath('../data/output.txt')
# merge the two files for further processing
merged_file = csv.writer(open(merged_path, 'a'), delimiter = '\t')
#file1
fg = csv.reader(open(path1, 'r'), delimiter = '\t')
for line in fg:
if line[7] != '\N':
merged_file.writerow(line)
#file2
bg = csv.reader(open(path2, 'r'), delimiter = '\t')
for line in bg:
if line[16] != '\N':
merged_file.writerow(line)