删除python文件中每个字符串开头的空格?
如何使用python
删除文件中每个字符串开头的空格?删除python文件中每个字符串开头的空格?
我在它下面所示的文件myfile.txt
与字符串:
_ _ Amazon.inc
Arab emirates
_ Zynga
Anglo-Indian
这些下划线的空间。
该代码必须以某种方式必须遍历文件的每一行,并在一行的开头删除所有这些空格。
我试过使用lstrip
,但这不适用于多行和readlines()
。
使用for
循环可以使它更好吗?
假设输入数据是infile.txt,并且要将此文件写入到output.txt,它是最容易使用的一个list comprehension:
inf = open("infile.txt")
stripped_lines = [l.lstrip() for l in inf.readlines()]
inf.close()
# write the new, stripped lines to a file
outf = open("output.txt", "w")
outf.write("".join(stripped_lines))
outf.close()
所有你需要做的是阅读逐个文件的行并删除每行的前导空格。在此之后,你可以再次参加行,你会回来没有空白原文:
with open('myfile.txt') as f:
line_lst = [line.lstrip() for line in f.readlines()]
lines = ''.join(line_lst)
print lines
@MartinGeisler感谢您的编辑。 – jcollado 2012-01-11 09:23:50
从myfile.txt
读取行,并将其写入output.txt
,使用
with open("myfile.txt") as input:
with open("output.txt", "w") as output:
for line in input:
output.write(line.lstrip())
那将确保在完成这些文件后关闭这些文件,并确保一次只保存一行内存。
由于关键字with
以上代码在Python 2.5及更高版本中起作用。对于Python 2.4,您可以使用
input = open("myfile.txt")
output = open("output.txt", "w")
for line in input:
output.write(line.lstrip())
如果这只是一个小文件,文件将在最后自动关闭。如果这是一个更大的计划的一部分,那么你要明确地关闭文件是这样的:
input = open("myfile.txt")
try:
output = open("output.txt", "w")
try:
for line in input:
output.write(line.lstrip())
finally:
output.close()
finally:
input.close()
你说你已经尝试过用lstrip
,它没有为多行工作。 “窍门”是在我上面所做的每条线路上运行lstrip
。如果需要,您可以尝试输出online。
嗯!显示语法错误 – 2012-01-11 09:16:33
我想你必须使用没有with关键字的Python 2.4。我会重写。 – 2012-01-11 09:21:47
我打算建议使用'lstrip()',但看起来你已经尝试过了。你可以发布你现在的代码,所以我们可以提出建议,而不必再次写它? – 2012-01-11 07:43:41
请记住注意并标记出最有用的答案。 – 2012-01-13 13:01:33