根据用户输入替换文本文件中出现的所有单词

时间:2018-02-13 18:17:58

标签: python text-files

假设我有一个包含以下内容的文本文件:

dog
dog
cat
dog
bird
cat

我会问用户应该替换dogcatbird。例如,dog = redcat = yellowbird = green。我的文本文件如下:

red
red
yellow
red
green
yellow

如何识别唯一字词,并询问用户用哪个替换每个独特字词?

我知道我是否这样做:

content = open('tags.txt' 'r').readlines()
content_set = set(content)

我会删除重复的条目。

如何询问用户用这些词替换这些词?然后继续替换这些词?

这是我之前的代码,它打开一个csv文件并将内容插入到文本文件中:

import csv

csv_location = input("Location of CSV: ")
csv_location_get = csv_location.replace('\\','/')

with open(csv_location_get, 'r') as csv_file:
    reader = csv.reader(csv_file)
    next(reader)
    for row in reader:
        # sku_row = row[0]
        category_row = row[6].split(';')
        category_split = category_row[0]

        with open('tags.txt', 'a') as txt_file:
            txt_file.write(category_split + '\n')

    content_old = open('tags.txt', 'r').readlines()

    content_new = set(content_old)

print(content_new)

2 个答案:

答案 0 :(得分:0)

你可以很容易地做到

首先,必须通过提示符或命令行中的文件询问要处理的文本文件,以便可以打开和编辑文件。 - 比如

打开文件(文件名)
test1.txt(输入)

然后您可以显示用户可用的选项 - 例如
1)更改特定单词/字母的所有出现次数 2)保存并退出
3)显示文件文本(打印文件)


基于uesr输入 - (对于您的程序输入将为1)
这里有2个选项

第一个选项

提示用户输入单词以使用另一个单词更改其在文件中的出现次数。


第二种选择(很可能是您的选择)

逐字显示 像这样

id值计数

1 - >狗(25个地方)
2 - >猫(2个地方)

输入数字和新单词以更改所有出现的内容 id new_Value

1红色

然后您可以更改所有匹配项的读取文件,并使用给定的单词更改它。

然后再次提示用户选项

1)更改特定单词/字母的所有出现次数 2)保存并退出
3)显示文件文本(打印文件)

然后用户可以查看或者他可以保存并退出 你可以在原件的复制或临时文本文件中做这些事情,当用户保存并退出时对原版进行更改

谢谢

答案 1 :(得分:-1)

我不知道如何更改文本文件,但您可以根据需要创建新文件。 我的解决方案是:我会创建两个arraylist,其中包含所有带有重复的单词,如果有,并且一个包含所有单词而不重复。 Liket认为: list1:{狗,狗,猫,狗,鸟,猫} list2:{dog,cat,bird} 然后我会打印每个单词并询问用户想要逐个替换它们。 之后用一个" for循环"和"如果声明",我会改变它们