Я новичок в кодировании Python. Мне нужно добавить новый столбец в строку, содержащую определенное слово. У меня есть файл csv:
one two three four five
two one five three four
five two four three five
Мне нужно добавить "2" ко всем строкам, содержащим "два" во втором столбце.
Как это:
one two three four five 2
two one five three four
five two four three five 2
заранее спасибо
Вы можете сделать что-то вроде
import csv
with open('input.csv','r') as csvinput:
with open('output.csv', 'w') as csvoutput:
writer = csv.writer(csvoutput, lineterminator='\n')
reader = csv.reader(csvinput)
all = []
for row in reader:
if(row[1] == "two"):
row.append(2)
all.append(row)
writer.writerows(all)
Это довольно простой анализ, поэтому я бы не стал беспокоиться о модуле csv. Просто откройте файл и выполните итерацию по каждой строке. Сделайте split
на каждой строке, которая разбивает строки на список, используя пробел в качестве разделителя (по умолчанию). Следующие две строки должны быть очевидными: те, у которых есть "два" в качестве второго столбца (второй элемент в списке разделов), дополняются, а те, которые этого не делают, - нет.
После того как вы прочитали файл и изменили строки, напишите его в новый файл.
newlines = []
with open("thecsv.txt") as f:
for l in f:
if l.split()[1] == "two":
newlines.append(l.strip() + " 2\n")
else:
newlines.append(l)
with open("newcsv.txt", 'w') as f:
for l in newlines:
f.write(l)
Вы можете открыть файл, который вы читаете, и файл, который хотите записать, сразу:
with open('my_text.txt') as read_file, open("output.txt", "w+") as write_file:
for line in read_file:
Прочитайте каждую строку и удалите пробел после нее.
line.strip()
Разделите каждую строку, если между ними есть пробел:
my_list = line.split()
if my_list[1] == "two":
my_list.append("2")
Добавьте "2" в список, а затем join
к списку с пробелом между каждым элементом. Добавьте новую строку в конец строки.
write_file.write(" ".join(my_list) + "\n")