0

我有一个文本文件,其中包含以下行: ('larry', 3, 100) 我需要使用接近我下面的方法将它的三个部分分配给不同的变量。到目前为止,我可以将其拆分,但我无法从结果中删除括号和撇号。我在stackover上尝试了其他解决方案数小时无济于事......

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

4

2 回答 2

0

您将要在ast.literal_eval此处使用,它将字符串转换为元组:

import ast
filecontent = ast.literal_eval(filename.read().strip())

你也不需要for循环,你也可以这样做:

name, weeks_worked, weekly_payment = filecontent
于 2013-08-07T07:14:53.793 回答
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(',')

然后做你平常的事情。

于 2013-08-07T08:45:25.233 回答