Python 无法循环列表中的值
我有一个场景,我想使用python读取文件 就像我们在Python 无法循环列表中的值,python,python-3.x,list,python-textprocessing,Python,Python 3.x,List,Python Textprocessing,我有一个场景,我想使用python读取文件 就像我们在unixshell中使用while从文件中逐行循环整个过程一样 文件中的数据:ABC.txt "A","B","C" "E","F","A" "S","H","DD","ADF" "G","L","
unixshell
中使用while从文件中逐行循环整个过程一样
文件中的数据:ABC.txt
"A","B","C"
"E","F","A"
"S","H","DD","ADF"
"G","L","LI","LO","YAU"
"H","KK","AD"
"J","GH","KL"
"L","OP","AM"
"O","LA","WE"
我的代码:
with open('ABC.txt',"r") as f:
lines = f.readlines()
parameter={ "empid":"3","empcd":"56","ide": [ lines ] }
parameter={ "empid":"3","empcd":"56","ide": [ "E","F","A" ] }
parameter={ "empid":"3","empcd":"56","ide": [ "S","H","DD","ADF" ] }
while read -r line
do
var=`echo $line`
paramter = '{ "empid":"3","empcd":"56","ide": [ $(( var )) ] }'
done < ABC.txt
我实际上看到的是逐行读取文件
应作为参数传递给“ide”:[行]
假设它经过第一次迭代,整个字符串->“A”、“B”、“C”
将被传递到“ide”:[“A”、“B”、“C”]
第二次迭代:
with open('ABC.txt',"r") as f:
lines = f.readlines()
parameter={ "empid":"3","empcd":"56","ide": [ lines ] }
parameter={ "empid":"3","empcd":"56","ide": [ "E","F","A" ] }
parameter={ "empid":"3","empcd":"56","ide": [ "S","H","DD","ADF" ] }
while read -r line
do
var=`echo $line`
paramter = '{ "empid":"3","empcd":"56","ide": [ $(( var )) ] }'
done < ABC.txt
第三次迭代:
with open('ABC.txt',"r") as f:
lines = f.readlines()
parameter={ "empid":"3","empcd":"56","ide": [ lines ] }
parameter={ "empid":"3","empcd":"56","ide": [ "E","F","A" ] }
parameter={ "empid":"3","empcd":"56","ide": [ "S","H","DD","ADF" ] }
while read -r line
do
var=`echo $line`
paramter = '{ "empid":"3","empcd":"56","ide": [ $(( var )) ] }'
done < ABC.txt
循环将继续,直到从文件中读取所有记录
在Unix中,我知道如何读取文件,但对python不太熟悉。如何使用python实现这一点
我的Unix代码:
with open('ABC.txt',"r") as f:
lines = f.readlines()
parameter={ "empid":"3","empcd":"56","ide": [ lines ] }
parameter={ "empid":"3","empcd":"56","ide": [ "E","F","A" ] }
parameter={ "empid":"3","empcd":"56","ide": [ "S","H","DD","ADF" ] }
while read -r line
do
var=`echo $line`
paramter = '{ "empid":"3","empcd":"56","ide": [ $(( var )) ] }'
done < ABC.txt
读取时-r行
做
var=`echo$line`
参数='{“empid”:“3”,“empcd”:“56”,“ide”:[$((var))]}'
完成
您可以使用将行转换为列表。例如:
从ast导入文字\u评估
打开(“ABC.txt”、“r”)作为f_in:
对于f_in中的行:
印刷品(
{“empid”:“3”,“empcd”:“56”,“ide”:literal_eval(“[”+行+“]))
)
印刷品:
{'empid':'3','empcd':'56','ide':['A','B','C']}
{'empid':'3','empcd':'56','ide':['E','F','A']}
{'empid':'3','empcd':'56','ide':['S','H','DD','ADF']}
{'empid':'3','empcd':'56','ide':['G','L','LI','LO','YAU']}
{'empid':'3','empcd':'56','ide':['H','KK','AD']}
{'empid':'3','empcd':'56','ide':['J','GH','KL']}
{'empid':'3','empcd':'56','ide':['L','OP','AM']}
{'empid':'3','empcd':'56','ide':['O','LA','WE']}
您可以使用将行转换为列表。例如:
从ast导入文字\u评估
打开(“ABC.txt”、“r”)作为f_in:
对于f_in中的行:
印刷品(
{“empid”:“3”,“empcd”:“56”,“ide”:literal_eval(“[”+行+“]))
)
印刷品:
{'empid':'3','empcd':'56','ide':['A','B','C']}
{'empid':'3','empcd':'56','ide':['E','F','A']}
{'empid':'3','empcd':'56','ide':['S','H','DD','ADF']}
{'empid':'3','empcd':'56','ide':['G','L','LI','LO','YAU']}
{'empid':'3','empcd':'56','ide':['H','KK','AD']}
{'empid':'3','empcd':'56','ide':['J','GH','KL']}
{'empid':'3','empcd':'56','ide':['L','OP','AM']}
{'empid':'3','empcd':'56','ide':['O','LA','WE']}
您可以使用json。:
import json
for line in open("ABC.txt"):
parameter = { "empid":"3", "empcd":"56", "ide": json.loads(f"[{line}]") }
print(parameter)
您可以使用json。:
import json
for line in open("ABC.txt"):
parameter = { "empid":"3", "empcd":"56", "ide": json.loads(f"[{line}]") }
print(parameter)
也可以使用lambda函数
fun1 = lambda x:x.strip().replace('"','').split(",")
new_lines = [fun1(i) for i in lines]
print(new_lines)
输出:
[['A', 'B', 'C'], ['E', 'F', 'A'], ['S', 'H', 'DD', 'ADF'], ['G', 'L', 'LI', 'LO', 'YAU']]
也可以使用lambda函数
fun1 = lambda x:x.strip().replace('"','').split(",")
new_lines = [fun1(i) for i in lines]
print(new_lines)
输出:
[['A', 'B', 'C'], ['E', 'F', 'A'], ['S', 'H', 'DD', 'ADF'], ['G', 'L', 'LI', 'LO', 'YAU']]
我不想打印想要进入参数行而不是“ide”:[values]@codeholic24所以我不想打印想要进入参数行而不是“ide”:[values]@codeholic24所以不是
print()。doparameter={“empid”:“3”,“empcd”:“56”,“ide”:literal_eval(“[“+line+”)”)}
我不想打印想要进入参数行而不是“ide”:[values]@codeholic24所以不是print()
doparameter={“empid”:“3”,“empcd”:“56”,“ide”:literal_eval(“[“+行+”])