我有一个文本文件,其中包含以下行:(' larry',3,100) 我需要使用a将它的三个部分分配给不同的变量 接近我下面的方法。到目前为止,我可以拆分它, 但我无法从结果中删除括号和撇号。 我已经尝试了几个小时的堆栈上的其他解决方案无济于事......
filecontent = filename.read().strip().split(',')
for i in filecontent:
name = filecontent[0]
weeks_worked = filecontent[1]
weekly_payment = filecontent[2]
print ("name:" + name)
print ("weeks worked:" + weeks_worked)
print ("weekly payment:" + weekly_payment)
给出了结果:
名:('拉里'
周工作:3
每周付款:100)
如何让它显示:
名:拉里
周工作:3
每周付款:100答案 0 :(得分:0)
你想在这里使用ast.literal_eval
,它会将字符串转换为元组:
import ast
filecontent = ast.literal_eval(filename.read().strip())
您也不需要for循环,您也可以这样做:
name, weeks_worked, weekly_payment = filecontent
答案 1 :(得分:0)
您可以在拆分之前或之前使用正则表达式。
filecontent = filename.read().strip().split(',')
for i in filecontent:
name = re.sub(r'\(|\)|\'','',filecontent[0])
weeks_worked = re.sub(r'\(|\)|\'','',filecontent[1])
weekly_payment = re.sub(r'\(|\)|\'','',filecontent[1])
或者我更喜欢这样做
filecontent = re.sub(r'\(|\)|\'','',filename.read().strip()).split(',')
然后做你平常的事情。