如何使用python从文件中删除多个随机关键字

时间:2016-07-10 13:47:16

标签: python file

我有一个名为hello.txt的文件,其中包含以下内容:

1 one
2 two
3 three
4 four
5 five

现在我作为用户选择从该文件中删除两个关键字,即一次点击即可删除四个和两个。

4 个答案:

答案 0 :(得分:0)

实施可能因文件格式,使用的库等而异。

假设我们有一个类似的文件:

file = "1 one\n" \
       "2 two\n" \
       "3 three\n" \
       "4 four\n" \
       "5 five\n"

我们要删除的关键字如下:

keys_to_remove = ["two", "four"]

现在,一个简单的算法,只有当关键字不存在时,我们才会在新文件中添加一行:

new_file = str()

for line in file.split("\n"):
    do_append = True
    for key in keys_to_remove:
        if key in line:
            do_append = False

    if do_append:
        new_file += line
        new_file += '\n'

print(new_file)

输出:

1 one
3 three
5 five

答案 1 :(得分:0)

尝试将文件打开到列表列表中,然后循环使用关键字删除任何列表。

file = open('hello.txt','r')
fileData = file.readlines()
newFileData = []
file.close()

removeThese = ['two','four']

for line in fileData:
    line = line.split(' ')
    if line[1] not in removeThese:
        newFileData += line

file = open('hello.txt','w')
for line in newFileData:
    file.write(' '.join(line))
file.close()

答案 2 :(得分:0)

我的基本查询是:

我有一个文件" hello.txt" 它的内容是这样的 - >

1索尼 2三星 3诺基亚 4 iphone 5 toshibha

现在将询问用户您想要查看哪两个手机

然后用户将给出3和5

因此,在接受用户请求后,应从hello.txt中删除两个移动设备。

如果用户选择3个手机或任何n个项目

,则同样适用

答案 3 :(得分:0)

试试这个。

new_file_data = []
file_data = [line.strip() for line in open("test.txt", "r")]
remove = ["five"]

for c in file_data:
        if c not in remove:
            new_file_data.append(c)

with open("test.txt","w") as file:
        for c in new_file_data:
            file.write("".join(c) + "\n")