Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用用户输入从文件中删除内容_Python_File - Fatal编程技术网

Python 如何使用用户输入从文件中删除内容

Python 如何使用用户输入从文件中删除内容,python,file,Python,File,我已经创建了一个包含内容的文件。问题是我知道如何使用append添加内容,但我不知道如何使用用户输入从文件中删除内容 代码为,结果变量为: while True: remover = int(input("What results do you want to remove ")) for line in enumerate(results, start = 1): line.remove(remover) print("{}".form

我已经创建了一个包含内容的文件。问题是我知道如何使用
append
添加内容,但我不知道如何使用用户输入从文件中删除内容

代码为,
结果
变量为:

    while True:
    remover = int(input("What results do you want to remove "))

    for line in enumerate(results, start = 1):
        line.remove(remover)
        print("{}".format(remover) + " is removed")

如果您能提供一些帮助,我将不胜感激。这似乎是一个非常适合列表理解的东西

假设结果是所有当前结果的列表 请参见下面的示例:

while True:
    remover = input("What results do you want to remove ")
    results = [line for line in results if line != remover]
    print("{}".format(remover) + " is removed")
    print("List currently has the following elements {}".format(results)
在下面的示例中,对于循环的每个迭代:

  • 要求用户输入要删除的内容
  • 创建一个新列表并将其放入“结果”中,方法是使用列表理解,从与“remover”中的内容不匹配的元素中创建一个新列表
  • 将显示一条消息,解释删除的内容,另一条消息打印当前列表
有关列表理解如何工作的更多信息,请参阅:


但是,如果您只是想让示例正常工作,可以将其重构为:

while True:
remover = int(input("What results do you want to remove "))

    for line in results:
        if line == remover:
            results.remove(remover)
            print("{}".format(remover) + " is removed")
我在这里改变的是:

  • 我已经将for语句移到了while块中,因为我假设每次迭代都希望发生这种情况(while为什么会出现),另外,因为使用了while(true),所以永远不会执行for块
  • 我已经更改了foreach的for语句,因为这样可以简化很多事情
    请注意,如果您使用的不是整数列表,但需要删除整型转换到int的字符串,那么“results”是我的字典。我想请您向我们展示一下
    文件
    的内容。您可以添加打开文件的方式吗?enumerate将返回一个元组,所以您得到的不是一个“行”,而是(数字,行),这将不起作用。。。另外,我认为您需要使用.replace()。这是我的文件:q;1.1.1瓦;1.1.1 e;1.1.1.