简而言之,我试图用空格替换行内单词中的所有标点符号。

例如,文本doc输出一旦处理,就不会像这样标点。


  M!我要踩油灰。我做过我做过的腻子
  tat Shsssssssssh我在搜寻wabbits h He He Its
  搜寻wabbits的好天气Heh Heh Heh停止其兔子
  huntin season Huntin Wabbits权威指南101种制作方法
  兔子


无需更改,它看起来像这样。

来自question5.txt的文字


  M!我要踩油灰。我做到了!我做到了!我拉油灰了
  达Shsssssssssh ...我在寻找乞abb。嘿嘿嘿嘿...
  美好的一天,寻找猎鹰! ...嘿嘿嘿...停下来-是兔子
  狩猎季节! Huntin Wabbits:权威指南101种制作方法
  兔子


这是一个练习,所以被告知要使用.replace和for循环。

import string
infile = open('question5.txt', 'r')

lines = infile.readlines()
lines = str(lines)
for words in lines:
    for letters in words:
        letters.replace(string.punctuation,' ')
        print(letters)


在解决问题方面的任何帮助将不胜感激。

请注意,在您提出建议和进行一些研究之后,如果有更多人关注结果,我将在几个小时后得出结论。谢谢大家Waves

import string
infile = open('question5.txt', 'r')
lines = infile.readlines()

def word_count(list):
    count = 0
    list = str(list)
    for lines in list:
        list = list.replace('.',' ')
        list = list.replace(',',' ')
        list = list.replace('-',' ')

    split = list.split()
    print (split)
    for words in split:
        count = count + 1
    return count


for line in lines:
    count = word_count(line)
    print(count)
infile.close()

最佳答案

这个更好:

import string as st

trans = st.maketrans(st.punctuation, ' '*len(st.punctuation))
with open('question5.txt', 'r') as f:
    for line in f:
        print line.translate(trans)

关于python - 在for循环中使用string.punctuation替换字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16768219/

10-12 22:42