如何使用python
刪除文件中每個字符串開頭的空格?刪除python文件中每個字符串開頭的空格?
我在它下面所示的文件myfile.txt
與字符串:
_ _ Amazon.inc
Arab emirates
_ Zynga
Anglo-Indian
這些下劃線的空間。
該代碼必須以某種方式必須遍歷文件的每一行,並在一行的開頭刪除所有這些空格。
我試過使用lstrip
,但這不適用於多行和readlines()
。
使用for
循環可以使它更好嗎?
如何使用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