删除所有以数字开头的行使用python
问题描述:
我试图删除以数字开头的文件中的所有行。我想出了下面这段代码,但它不起作用。删除所有以数字开头的行使用python
output = open("/home/test1/Desktop/diff2.txt", "w")
with open("/home/test1/Desktop/diff.txt") as input:
for line in input:
if not line.lstrip().isdigit():
output.write(line)
print(line)
input.close()
output.close()
exit();
它最终还是打印与输出文件
答
这下面的脚本作品对我的快速测试案例精:
output = open("test.out", "w")
with open("test.in") as input:
for line in input:
if not line.lstrip()[0].isdigit():
output.write(line)
print(line)
output.close()
随着输入:
1test
2test
hello
3test
world
4something
给出输出:
hello
world
+1
谢谢,这解决了我的问题。 – answerSeeker
答
号您对整个排队叫is_digit
,将返回True
只有在订单完全由数字开始的所有行。
with open('input.txt') as inp, open('output.txt', 'w') as out:
out.write(''.join(l for l in inp if l[0] not in '123456789'))
答
lstrip().isdigit()
不检查行中的第一个字符是数字。你应该采取的第一个字符(如果该行有个字符),并在该字符检查isdigit()
:
if line == '' or not line[0].isdigit():
output.write(line)
你能提供一个文件的例子吗? – JosephGarrone
您在for循环的内容中发布了一个缩进错误。 – theorifice
是的,我将编辑它的问题 – answerSeeker