从文本文件字符串中删除特定字符

时间:2013-08-07 07:13:53

标签: python file variables python-3.x

我有一个文本文件,其中包含以下行:(' 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

2 个答案:

答案 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(',')

然后做你平常的事情。