#python #csv #split
#python #csv #разделение
Вопрос:
Я прочитал строки из файла, который содержит два столбца со значениями в этом стиле:
100.E-03 5.65581E-06
110.E-03 11.222E-06
120.E-03 18.3487E-06
130.E-03 15.6892E-06
Мне нужно записать их в другой файл как:
100.E-03 , 5.65581E-06
110.E-03 , 11.222E-06
120.E-03 , 18.3487E-06
130.E-03 , 15.6892E-06
Могу ли я сделать это с помощью split? Могу ли я определить пробелы, например, 5 пробелов в качестве разделяемой переменной? И когда да, как я могу выбрать разделенные части, чтобы записать их так, как я хочу:
Мой скрипт выглядит так:
for k in files:
print 'k =',k
from abaqus import session
print k
with open("niffacc{k}.inp".format(k=k)) as f1:
with open("niffacc_{k}.inp".format(k=k),"w") as f2:
for line in itertools.islice(f1, 4, None):
b = line.split(" ")
#print "b:", b
c = b[1]
d = b[3]
f2.write('%s'%c "," '%s'%d)
#with open('VY_{k}'.format(k=k), 'a') as f1:
#lines = f1.readlines()
f2.close()
f1.close()
Я думаю, что проблема заключается в определении b, разделенной строки. Есть ли какие-либо проблемы с определением пробелов как разделенных символов? Есть ли у python проблема с разделением ti из-за большого количества пробелов или он обрабатывается как группы пробелов?
Является ли лучшим решением преобразовать файл в файл csv, а затем обратно в текстовый файл?
Ответ №1:
Я не уверен, зачем вам столько пробелов между столбцами, но вы можете просто разделить их на пробелы:
with open('file1.txt') as f1, open('file2.txt', 'w') as f2:
for line in f1:
f2.write(line.split()[0] ',' line.split()[1] 'n')
Если вам действительно нужна куча пробелов, просто используйте:
f2.write(line.split()[0] ' , ' line.split()[1] 'n')
Ответ №2:
split
автоматически обрабатывает любое количество пробелов.
' 100.E-03 5.65581E-06'.split() == ['100.E-03', '5.65581E-06']