python:如何从文件中删除标点符号

时间:2013-06-30 07:33:40

标签: python file-io punctuation

我有一个输入文件,每行都在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()

但它似乎不起作用,即标点符号在输出文件中保留。 有人可以告诉我我错在哪里

2 个答案:

答案 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))