通过匹配lin中的数字,使用python删除.txt中的一行

2024-06-08 18:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我终于到了我的最后一部分。。我被卡住了。。在

在我的订单列表.txt我有档案

[99 ,1, "3/03/2011", ["ScrewDriver", "Hammer", "Stone"]]
[2 ,2, "3/03/2011", ["hammer,nails"]]
[31 ,2, "3/03/2011", ["plaster,studd"]]
[100 ,2, "3/03/2011", ["hammer,studd"]]

我的代码:

^{pr2}$

在这一部分它给了我

Traceback (most recent call last):
  File "E:/cscs 120 testint in lab/assignment 1/Customer assignment 1/Customer assignment 1/testing oder", line 13, in <module>
    print(delorder())
  File "E:/cscs 120 testint in lab/assignment 1/Customer assignment 1/Customer    assignment 1/testing oder", line 8, in delorder
    listline=eval(line)
  File "<string>", line 1
    [99 ,1, "3/03/2011", [“ScrewDriver”, “Hammer”, “Stone”]]
                                      ^
SyntaxError: invalid character in identifier

这个函数的目标是得到一个输入数字示例:31和它将删除-->; [31,2,“2011年3月3日”,[“石膏,双头螺栓”]],在订单列表.txt它不会出现在这一行[31,2,“3/03/2011”,[“石膏,stud”]]而是剩余的线条。 plz帮助


Tags: in订单txt列表linecustomercscsfile
1条回答
网友
1楼 · 发布于 2024-06-08 18:19:21

我不确定你是否看到了,但是仔细看看那些引号:

[1,'1','3/03/2011', [“ScrewDriver”, “Hammer”, “Stone”]]

这两者之间有区别:

^{pr2}$

还有这个:

"

第一个()是一个卷曲的引语,它扰乱了解释器。使用普通引号(")并将脚本返回的内容发回。在

另外,这个return语句的作用是什么:

return (new)

如果您在一个函数中,函数将在列表的第一次迭代时退出,因为它return是每一个循环,但只有第一个循环被捕获,函数在那里死亡。在

我会将return语句下移一级,这样它就不属于for循环的一部分。所以改变这个:

for line in lines:
    listline=eval(line)
    if not(num_del==list_line[0]):
        new +=(line + "\n")
    return (new)

为此:

for line in lines:
    listline=eval(line)
    if not(num_del==list_line[0]):
        new +=(line + "\n")

return (new)

这是你的文本文件,没有引号。尝试复制并粘贴:

[99 ,1, "3/03/2011", ["ScrewDriver", "Hammer", "Stone"]]
[2 ,2, "3/03/2011", ["hammer,nails"]]
[31 ,2, "3/03/2011", ["plaster,studd"]]
[100 ,2, "3/03/2011", ["hammer,studd"]]

相关问题 更多 >