Я следующие два типа текстовых файлов:Пишущие пустые столбцы в питоне
File1
Sample1012, Male, 36, Stinky, Bad Hair
Sample1043, Female, 28, Hot, Short Hair, Hot Body, Hates Me
Sample23905, Female, 42, Cougar, Long Hair, Chub
Sample123, Male, 32, Party Guy
File2
DEAD, Sample123, Car Accident, Drunk, Dumb
ALIVE, Sample1012, Alone
ALIVE, Sample23905, STD
DEAD, Sample1043, Too Hot, Exploded
Я просто хочу, чтобы написать просто Python скрипт, чтобы присоединиться к этим файлы, основанные на поле выборки, но все время сталкиваются с проблемой случайного числа столбцов данных. Например, я в конечном итоге с:
Sample1012, Male, 36, Stinky, Bad Hair, ALIVE, Sample1012, Alone
Sample1043, Female, 28, Hot, Short Hair, Hot Body, Hates Me, DEAD, Sample1043, Too Hot, Exploded
Sample23905, Female, 42, Cougar, Long Hair, Chub, ALIVE, Sample23905, STD
Sample123, Male, 32, Party Guy, DEAD, Sample123, Car Accident, Drunk, Dumb
Когда я хочу это:
Sample1012, Male, 36, Stinky, Bad Hair, EMPTY COLUMN, EMPTY COLUMN, ALIVE, Sample1012, Alone
Sample1043, Female, 28, Hot, Short Hair, Hot Body, Hates Me, DEAD, Sample1043, Too Hot, Exploded
Sample23905, Female, 42, Cougar, Long Hair, Chub, EMPTY COLUMN, ALIVE, Sample23905, STD
Sample123, Male, 32, Party Guy, EMPTY COLUMN, EMPTY COLUMN, EMPTY COLUMN, DEAD, Sample123, Car Accident, Drunk, Dumb
Я в основном только чтение в обоих файлах с .readlines(), а затем сравнивая соответствующую колонку с Идентификатор образца с простым «==», и если это правда, оно выводит строку из первого файла и второго.
Не знаете, как использовать len(), чтобы определить максимальное количество столбцов в файле1, чтобы я мог учитывать это в конце каждой строки, если это не максимальное количество столбцов, прежде чем добавить строку из другой file (при условии, что значение «==» истинно).
Любая помощь очень ценится.
UPDATE:
Это то, что я получил в настоящее время:
import sys
import csv
usage = "usage: python Integrator.py <table_file> <project_file> <outfile>"
if len(sys.argv) != 4:
print usage
sys.exit(0)
project = open(sys.argv[1], "rb")
table = open(sys.argv[2], "rb").readlines()
outfile = open(sys.argv[3], "w")
table[0] = "Total Table Output \n"
newtablefile = open(sys.argv[2], "w")
for line in table:
newtablefile.write(line)
projectfile = csv.reader(project, delimiter="\t")
newtablefile = csv.reader(table, delimiter="\t")
result = []
for p in projectfile:
print p
for t in newtablefile:
#print t
if p[1].strip() == t[0].strip():
del t[0]
load = p + t
result.append(load)
for line in result:
outfile.write(line)
outfile.close()
Не удается получить для петель, чтобы работать вместе - не возражали немой вещи на остановке. один из файлов имеет пустую первую строку.
Оцените быструю помощь - ПУСТОЙ КОЛОНКА на самом деле должно быть пустым полем. Я хочу сохранить их в финальном выпуске. Ответ от Павла приближает меня, но не совсем там. – user1265669