Я создаю команды из 2 файлов: один из них имеет команду в 3 строки ('comando.txt'), второй имеет параметры (file.txt)
Команды в txt содержат такие символы, как ("'и,), которые нельзя установить в csv или list.
Например, результатом команды является TEXT01: 12TEXT02 "LAS'5022268h'0023; для df.loc [0].
- после открытия comando.txt он передает номер строки в функцию paso.
- если он печатает i = row, функция получает каждую строку индекса от df.
- инструкция
for line in f1:
i значения не проходит, даже print(i)
выше полученной
import csv
import pandas as pd
new_text = ''
def paso(row):
i = row
j=0
result=''
# 2 - it print row number that function
print(i)
for line in f1:
# 3 - ERROR is here, the unique value for i=0, never pass
#print(i)
strip = line.strip()
result = result + add_para(strip,i,j)
j=j+1
#The result is TEXT01:012TEXT02"LAS'5022268h'0023;
return result
def add_para(comando,valor,j):
if j< columnas:
#print(row)
comando = comando +str(df.iloc[row,j])
return comando
else:
comando=comando
return comando
with open('file.txt') as f2:
df = pd.read_csv(f2,header=None)
filas = df.shape[0]
columnas = df.shape[1]
with open('comando.txt') as f1:
for row in range(filas):
for col in range(1):
# 1 - it passes row number to function "paso"
regreso = paso(row)
#print(regreso)
печать
In [44]:
with open('comando.txt') as f1:
for line in f1:
print(line.strip())
Out[45]:
TEXT01:
TEXT02"LAS'
h'0023;
In [45]: df.head()
Out[45]: 0 1
0 12 5022268
1 13 5022269
2 14 5022277
3 15 5022279
4 16 5022377
ошибка не отображается, но как номер строки i
можно передать в for line in f1:
Например, результатом команды является TEXT01:12TEXT02"LAS'5022268h'0023;
для df.loc[0]
и вторая команда TEXT01:13TEXT02"LAS'5022269h'0023;
для df.loc[1]
... etc