Я пытаюсь поместить определенные столбцы файлов, разделенных табуляцией, в словарь.Я пробую несколько вещей, и ни один из них не дает мне результат, который я ищу.
У меня есть, например, этот файл:
Name Start End Size
del1 100 105 5
del2 150 160 10
del3 250 300 50
и этот файл, оба .csv
Name Qual StartB EndB Size
inv1 6 400 405 5
inv2 7 450 460 10
inv3 20 450 400 50
То, что я хочу, это что-то вроде этого, где Имя является ключом, а остальные являются значениями, кроме того, у меня есть проблема изменения заголовков и индексов заголовков, но они означают одно и то же:
del_dict{del1: {Start: 100, End: 105, Size:5} del2: {etc}
Я пытался прочитать файл несколькими способами, основываясь на других ответах о переполнении стека.
for file in glob.glob(directoryname + "/*.csv"):
dict = pd.read_csv(file, squeeze=False, sep="\t").to_dict()
print(dict)
и
for file in glob.glob(directoryname + "/*.csv"):
df = pd.read_csv(open(file, 'r'), header=0, sep="\t")
if "StartB" in df.keys():
name = df.Name
start_pos = df.StartB
end_pos = df.EndB
else:
name = df.Name
start_pos = df.Start
end_pos = df.End
Но это дает мне кадры данных, которые я не могу вписать вэто в словарь.
Я также попробовал этот код, который я использовал раньше, но тогда это был только один файл и без изменения заголовков, и тогда это приведет к слишком большому количеству циклов и жесткому кодированию, чтобы переварить все, что мне нужно, основываясь на файле, который я открываю.
for file in glob.glob(directoryname + "/*.csv"):
with open(file, 'r') as csvfile:
csv_list = []
for line in csvfile:
csv_list.append(line.strip("\t"))
Я довольно новичок в Python, и я знаю, что относительно простой ответ должен быть доступен, но я не могу его найти.Извините, если ответ уже о переполнении стека, я часами пытался найти аналогичную / работоспособную проблему, и вот тут я действительно застрял.