2

テキストファイルからpuncを削除する必要があります。

テキストファイルはこんな感じ

ffff、hhhh、そして明日の家、
あなたは去ったことがありますか?

やっています

punc =( "、。/;'?&-")

f = open('file.txt'、'r')

for line in f:
    strp=line.replace(punc,"")
    print(strp)

出力は次のようにする必要があります。

ffff hhhh tommorw home

Have you from gone

これは各行を返しますが、パンクはまだそこにあります>いくつかの助けを使うことができます。ありがとう

4

4 に答える 4

9

str.translate文字列から文字を削除するために使用します。

Python 2.x の場合:

# first arg is translation table, second arg is characters to delete
strp = line.translate(None, punc)

Python 3 では:

# translation table maps code points to replacements, or None to delete
transtable = {ord(c): None for c in punc}
strp = line.translate(transtable)

str.maketrans別の方法として、以下をビルドするために使用できますtranstable

# first and second arg are matching translated values, third arg (optional) is the characters to delete
transtable = str.maketrans('', '', punc)
strp = line.translate(transtable)
于 2012-09-17T05:37:11.963 に答える
3
>>> import string
>>> with open('/tmp/spam.txt') as f:
...   for line in f:
...     words = [x.strip(string.punctuation) for x in line.split()]
...     print ' '.join(w for w in words if w)
... 
ffff hhhh tommorw home
Have you from gone
于 2012-09-17T05:37:10.930 に答える
0

str.translateを使用するアイデアは素晴らしいと思いますが、別の方法を次に示します。

punc=set(",./;'?&-")

for line in f:
    strp=''.join(c for c in line if not c in punc)
    print(strp)
于 2013-05-04T10:55:21.553 に答える
0
import string

str_link = open('replace.txt','r').read()

#str_link = "ffff, hhhh, & tommorow home, Have you from gone?"

punc = list(",./;'?&-")

for line in str_link:
    if line in punc:
        str_link = str_link.replace(line,"") 

print str_link
于 2013-05-04T09:37:40.183 に答える