Python .replace()函数无法正常工作

时间:2018-06-01 05:26:34

标签: python python-3.x

我试图弄清楚为什么python中的.replace函数无法正常运行。我昨天花了整整一天寻找答案,但唉还没有找到答案。

我正在尝试打开并读取文件,将其复制到列表中,计算列表中的行数并删除所有标点符号(即。!等)。我可以做任何事情,除了删除标点符号(我必须使用.replace函数而不是导入模块)。

with open('Small_text_file.txt', 'r') as myFile:        #adding lines from file to list
contents = myFile.readlines()
fileList= []
# punctuation = ['(', ')', '?', ':', ';', ',', '.', '!', '/', '"', "'"]
for i in contents:
    fileList.append(i.rstrip())

print('The Statistics are:\n','Number of lines:', len(fileList)) #first part of question



for item in fileList:
    fileList = item.replace(',', "")
    fileList = item.replace('.', "")

print(fileList)

“小文本文件”是:

Lorem ipsum dolor sit amet,consectetur adipiscing elit。 Vivamus condimentum sagittis lacus? laoreet luctus ligula laoreet ut。 Vestibulum ullamcorper accumsan velit vel vehicula? Proin tempor lacus arcu。 Nunc at elit condimentum,semper nisi et,condimentum mi。 在venenatis blandit nibh在sollicitudin。在orci maximus pellentesque的前庭dapibus mauris。 Nullam id elementum ipsum。 Suspendisse

运行代码会返回以下内容:

统计数据是:

行数:6

Nullam id elementum ipsum Suspendisse

因此代码可以删除逗号和句点字符,但它也会删除文本的前5行,只打印最后一行。我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

使用enumerate

for x, item in enumerate(fileList): 
    fileList[x] = item.replace(',', "").replace('.', "") 

注意item.replace()返回需要存储在右侧列表索引中的替换字符串。 enumerate帮助您在迭代列表时跟踪索引。

答案 1 :(得分:0)

应该是

for i,item in enumerate(fileList):
    fileList[i] = item.replace(',', "").replace('.', "")

没有枚举,

for i in range(len(fileList)):
    fileList[i] = fileList[i].replace(',', "").replace('.', "")