У меня проблема с заменой двух столбцов из одного файла в другой два столбца в другом файле.первый файл содержит 29 строк и два столбца, в то время как второй файл представляет собой огромный файл, содержащий около 1400 строк и различных столбцов.первый файл выглядит так:
ag-109 3.905E-07
am-241 1.121E-06
am-243 7.294E-09
cs-133 1.210E-05
eu-151 2.393E-08
eu-153 4.918E-07
gd-155 2.039E-08
mo-95 1.139E-05
nd-143 9.869E-06
..............
.............
2-й файл выглядит так:
u-234 101 0 7.471e-06 293 end
u-235 101 0 0.0005265 293 end
u-236 101 0 0.0001285 293 end
u-238 101 0 0.02278 293 end
np-237 101 0 1.018e-05 293 end
pu-238 101 0 2.262e-06 293 end
pu-239 101 0 0.000147 293 end
.........
.......
# the first 29 lines of column1 repeated, and each 29 lines, has one value
of column 2.
from "101" 29 times, then "102" 29 lines,.... till "1018"
as below.
.
u-234 1018 0 7.471e-06 293 end
u-235 1018 0 0.0005265 293 end
u-236 1018 0 0.0001285 293 end
u-238 1018 0 0.02278 293 end
np-237 1018 0 1.018e-05 293 end
pu-238 1018 0 2.262e-06 293 end
after the "1018"
file2 text continue like this
u-234 201 0 8.856E-06 293 end
u-235 201 0 7.832E-04 293 end
u-236 201 0 8.506E-05 293 end
я хочу прекратить замену столбцов, когда столбец 2 равен «201», покаконец файла.
/// *** следует отметить, что остальная часть файла2 - это совершенно другой текст и продолжается другими текстами и числами с разной длиной столбцов ******** \.
Кроме того: \\ file1 содержит 29 строк, у меня есть несколько файлов, похожих на file1, все их столбцы должны быть заменены на столбцы file2 по порядку.уточнить: если вы видите в file2 столбце 2 есть «101», поэтому это значение повторяется 29 раз, что связано с file1.это будет продолжаться до тех пор, пока file1_18 не будет заменен в строках "1018" в file2
Я хотел бы уточнить, это довольно сложно объяснить для меня.
Я пытался изменитьпервый столбец file1 со столбцом 1 в file2 и от столбца 2 в file1 до столбца 3 в файле 2.
я столкнулся с двумя проблемами: 1 - я не смог заменить столбцы 2 - как записать целоефайл после изменения столбцов.
Я попытался прочитать оба файла и разбить их на столбцы, а затем прочитать определенные столбцы с условиями.
Я также попытался преобразовать файлы в * .csv, но это испортилопробелы, и он должен быть запущен с системным кодом с конкретным расширением.
with open('100_60.inp') as f:
while True:
line = f.readline()
if not line:
break
columns=re.split(r"\s+",line.strip())
if len(columns)==6 and columns[5]=='end' and columns[1]!='11':
if columns[1]=='201':
break
repla =columns[0]
compo=columns[3]
print(repla,compo) # this will print col1 and col4 of file2
with open('20_3.2_10_100_18.txt') as s:
while True:
nuclide = s.readline()
if not nuclide:
break
rows = re.split(r"\s+",nuclide.strip())
material = rows[0]
com2 = rows[1]
print(material,com2) # col1 and col2 from file1
вывод должен быть таким:
ag-109 101 0 3.905E-07 293 end
am-241 101 0 1.121E-06 293 end
am-243 101 0 7.294E-09 293 end
cs-133 101 0 1.210E-05 293 end
eu-151 101 0 2.393E-08 293 end
eu-153 101 0 4.918E-07 293 end
gd-155 101 0 2.039E-08 293 end
....
....
....
iЯ действительно новичок в Python.Я не знаю, как это закончить.Я не знаю, как написать полный файл после редактирования тоже.
пожалуйста, любая помощь будет оценена.
Заранее спасибо