当我在里面的时间键显示它已经过期时,我试图删除一个特定的行。问题是,当它调用写代码来删除已过期的特定行时,它将删除我需要的行,加上它上面的所有行。导致许多用户被删除。我的代码有什么问题?
with open('keys.txt', 'r') as fr:
lines = fr.readlines()
with open('keys.txt', 'w') as fr:
for line in lines:
if line.find(str(id)) == -1:
fr.write(line)
context.user_data.clear()
return ConversationHandler.END我的keys.txt看起来像这样。
('1372442', 1659568148811)
('1257406', 1659568153834)
('9910858', 1659568157498)
('1620335', 1659568165471)
('7654803', 1659568170428)
('976647', 1659568175183)
('55145660', 1660695274791)
('5496536', 1660715952400)
('15006383', 1658803605159)
('54928044', 79716354)谢谢
因此,让我们说最后一个ID "54928044“是无效的,因为时间码是过期的。它不是只删除这一行,而是删除除第一行以外的所有行。
发布于 2022-07-29 06:05:01
我不太熟悉PTB,所以我不能对下面的代码段说太多(我不认为从for循环返回是个好主意,我会从for循环中提取出来):
context.user_data.clear()
return ConversationHandler.END但只是为了保持一致。当你这样做时:
with open('keys.txt', 'w') as fr:
for line in lines:
if line.find(str(id)) == -1:
fr.write(line)您真正要做的是检查该行是否包含ID子字符串,然后将该行写入文件,然后删除数据。我不太清楚为什么第一行是现在留在文件中的行,但您可以尝试下面的内容来缩小到您正在查看的ID:
with open('keys.txt', 'w') as fr:
for line in lines:
if line.find(str(id)) != -1:
fr.write(line)'!= -1‘表示ID在该行内,您想要删除它。试一试,如果它能解决你的问题,请告诉我。
https://stackoverflow.com/questions/73161520
复制相似问题