Python 删除str用户输入指示的文件中的行

Python 删除str用户输入指示的文件中的行,python,Python,文本文件: 1. line 2. line 3. line 4. line ... 代码: 如何实现删除用户选择的行 有问题的行:elif idea==f”--del{type(int)}“ 用户希望使用语法删除所选行,即--del 4,命令必须在一行中。如果输入中的空白“”(空格)后没有给出数字,应循环直到正确输入为止 有什么想法吗?是否应该使用正则表达式?您的问题是f-strings的工作方式与正则表达式不同类型(int)是实际的类型类,因此您基本上是在检查用户是否按字面意思输入“--de

文本文件:

1. line
2. line
3. line
4. line
...
代码:

如何实现删除用户选择的行

有问题的行:
elif idea==f”--del{type(int)}“

用户希望使用语法删除所选行,即
--del 4
,命令必须在一行中。如果输入中的空白“”(空格)后没有给出数字,应循环直到正确输入为止


有什么想法吗?是否应该使用正则表达式?

您的问题是
f-strings
的工作方式与正则表达式不同<代码>类型(int)是实际的
类型
类,因此您基本上是在检查用户是否按字面意思输入
“--del”
(我认为情况并非如此)

您可以使用正则表达式来匹配
del
模式,后跟一个数字(即,
r”--del\d+“
),但更简单的方法是
拆分输入并轻松访问arg和数字:

quit=False
不退出时:
打开(“sample.txt”、“r+”)作为文件:
n=len(file.read().split(“\n”))
idea=输入(f“输入想法编号{n}:”).split()
如果想法[0]=“q”:
退出=真
elif idea[0]==“--列表”:
...
elif idea[0]==“--del”:
打开(“sample.txt”、“r”)作为文件:
l=想法[1]
...
其他:
file.write(f“{n}.{idea}\n”)

问题是什么?有什么问题吗?你有错误吗?输出错误?请阅读并了解如何提供一个您正在寻找的
argparse
?如果您的问题是关于
elif idea==f”--del{type(int)}:
行,那么我认为只需执行
elif idea.split()[0]==“--del del:
。。。然后通过
idea.split()!谢谢,看看我对这条评论的回答。如果它解决了你的问题,你可以接受不要留下问题
quit = False
while not quit:
    with open("sample.txt", "r+") as file:
        n = len(file.read().split("\n"))
        idea = input(f"Enter idea no. {n}: ")
        if idea == "--q":
            quit = True
        elif idea == "--list":
            with open("sample.txt", "r") as file:
                print(f"\n{file.read()}\n")
        elif idea == f"--del {type(int)}": #if user enter i.e. '--del 4' it dels line 4 
            with open("sample.txt", "r") as file:
                l = idea.split(" ")[1]
                lines = file.readlines()
                del lines[l]
            del_idea = open("sample.txt", "w")
            for line in lines:
                del_idea.write(line)
            del_idea.close()
        else:
            file.write(f"{n}. {idea}\n")