我有一个输入文件,每行都在python中列表的formar中。它看起来像这样:
['people', 'desert', 'snow']
['people', 'flower', 'garden', 'goat']
我想处理这个文件并删除它的所有标点符号,即“[”,“]”,“,”和“'”
我使用以下代码:
import string
import re
openfile=open('jcn','r')
writefile=open('jcnout','w')
punctuation=["[","]",",","'"]
for line in openfile:
line.translate(None, string.punctuation)
writefile.write(line)
writefile.flush()
writefile.close()
openfile.close()
但它似乎不起作用,即标点符号在输出文件中保留。 有人可以告诉我我错在哪里
答案 0 :(得分:3)
您需要更改
line.translate(None, string.punctuation)
到
line = line.translate(None, string.punctuation)
在Python中,字符串是不可变的。相应地,translate()
不会更改字符串,而是返回已翻译的字符串(您忽略它)。
答案 1 :(得分:0)
支持里面的标点字符串:
import ast
import fileinput
for line in fileinput.input(inplace=1): #NOTE: replace inplace
print " ".join(ast.literal_eval(line))