Python 2.7 Python 2.7-如何删除文本文件中长度超过x的行?

Python 2.7 Python 2.7-如何删除文本文件中长度超过x的行?,python-2.7,Python 2.7,如何删除长度超过x数量的文本文件中的行?然后覆盖该文件并仅保存长度为x的行 f = open("file.txt","r") lines = f.readlines() f.close() f = open("file.txt","w") for line in lines: if line!="ph5"+"\n": f.write(line) f.close() 但是不要为我工作,因为我的字符串包含ph5,它不仅仅是ph5本身 这听起来像是一个家庭作业问题,所以我不会直接回答你

如何删除长度超过x数量的文本文件中的行?然后覆盖该文件并仅保存长度为x的行

f = open("file.txt","r")
lines = f.readlines()
f.close()

f = open("file.txt","w")
for line in lines:
  if line!="ph5"+"\n":
    f.write(line)
f.close()
但是不要为我工作,因为我的字符串包含ph5,它不仅仅是ph5本身


这听起来像是一个家庭作业问题,所以我不会直接回答你的问题,但我也不介意帮助你从a点到B点。如果你能展示你做了什么工作以及关于它的任何具体问题,那就不同了。请查看更多信息。否则,这个问题很可能会结束,因为它表明你没有努力

要解决您的问题:

读入文件的行。 将您的行筛选为长度小于或等于x的行。 覆盖您的文件。在这样做之前,您可以将行重新连接到字符串中。 完成后始终关闭文件。 编辑:

现在,您已经知道了如何自己编写它,我将提供一个示例,以一种更具python风格的方法来说明它在现实世界中的表现,这样您也可以看到我建议的方法

# Open the file, read the lines into a list, and truncate the file.
file = open("file.txt", "r+")
lines = file.readlines()
file.seek(0)
file.truncate()

# Filter out lines longer than 42 characters and write to them the file.
lines = filter(lambda line: len(line) <= 42, lines)
file.writelines(lines)
file.close()

为什么不用len?如果lenline感谢非常有效,我如何才能将你的答案标记为正确答案。是的,对不起,我把它和我想知道的另一件事混淆了。没问题。您可以通过单击复选标记来完成此操作。另外,我将用一个真实世界的例子更新我的答案,以便进行比较。