2015-12-02 220 views
-4

Python新手。 使用此代碼Python只打印第一行

#!/usr/bin/env python2 
with open('/tmp/cadrootcomp1.firstwords',mode="rb") as f: 
    print '/'.join(f.read().split('/')[:2]) + '/' 

獲取輸出: ABC/DEF/

當原線爲ABC/DEF/GHI

所以這個工作得很好。需要此腳本在文件的其他行上運行。它只處理第一行。

+0

你需要使用一個循環讀取所有行。 'f.read()'一次讀取 –

+0

新的Python一行。你能說明這個循環是如何工作的嗎? – Glad

回答

0

您正在尋找這樣的事情:

#!/usr/bin/env python2 
with open('/tmp/cadrootcomp1.firstwords',mode="rb") as f: 
    for line in f: 
     print '/'.join(line.split('/')[:2]) + '/' 
+0

作品。謝謝! – Glad

1

不知道我理解正確的話你正在嘗試做的。如果您嘗試遍歷文件中的行,請嘗試此操作。

 
with open('/tmp/cadrootcomp1.firstwords',mode="rb") as lines: 
    for line in lines: 
     print '/'.join(line.split('/')[:2]) + '/' 
+0

作品。謝謝! – Glad

1

我覺得下面一個更好。我猜你正在使用切片file.read()後刪除\n。一個更好的辦法來做到這一點是使用strip()這樣的:

f.read().strip() 

你甚至都不需要,閱讀一行行的時候。

with open('/tmp/cadrootcomp1.firstwords',mode="rb") as f: 
for line in f: 
    print line.rsplit('/',1)[0] + '/'