我是python的新手,刚刚开始导入文本文件。我有一个文本文件,其中包含一个单词的列表,我想能够输入一个单词,这个单词要从文本文件中删除。有人能解释一下我是怎么做到这一点的吗?
text_file=open('FILE.txt', 'r')
ListText = text_file.read().split(',')
DeletedWord=input('Enter the word you would like to delete:')
NewList=(ListText.remove(DeletedWord))
到目前为止,我已经将该文件导入到列表中,然后我可以从新列表中删除一个单词,但也可以从文本文件中删除该单词。
发布于 2014-01-09 04:40:29
下面是我推荐的方法,因为它相当简单,而且我不认为您关心的是性能:
f = open("file.txt",'r')
lines = f.readlines()
f.close()
excludedWord = "whatever you want to get rid of"
newLines = []
for line in lines:
newLines.append(' '.join([word for word in line.split() if word != excludedWord]))
f = open("file.txt", 'w')
for line in lines:
f.write("{}\n".format(line))
f.close()
这允许一行上有多个单词,但如果每行只有一个单词,也同样有效
回答更新后的问题的:
您不能直接编辑文件(或者至少我不知道如何编辑),而是必须获取Python中的所有内容,对其进行编辑,然后使用更改后的内容重写文件
另一件需要注意的事情是,lst.remove(item)
将抛出lst
中的第一个item
实例,而且只抛出第一个实例。因此,对于.remove()
来说,item
的第二个实例是安全的。这就是我的解决方案使用列表理解从列表中排除所有excludedWord
实例的原因。如果你真的想使用.remove()
,你可以这样做:
while excludedWord in lst:
lst.remove(excludedWord)
但我不鼓励这样做,而是支持等效的列表理解。
发布于 2015-12-25 05:06:15
我们可以替换文件中的字符串(需要一些导入;):
import os
import sys
import fileinput
for line in fileinput.input('file.txt', inplace=1):
sys.stdout.write(line.replace('old_string', 'new_string'))
在这里(也许)找到这个:http://effbot.org/librarybook/fileinput.htm
如果'new_string‘更改为'',则这与删除'old_string’相同。
发布于 2020-07-15 13:57:44
所以我尝试了一些类似的东西,这里有一些观点给那些可能会读到这个帖子的人。替换修改过的内容的唯一方法是在"w“模式下打开相同的文件。然后python就会覆盖现有的文件。我尝试使用"re“和sub():
import re
f = open("inputfile.txt", "rt")
inputfilecontents = f.read()
newline = re.sub("trial","",inputfilecontents)
f = open("inputfile.txt","w")
f.write(newline)
https://stackoverflow.com/questions/21005921
复制相似问题