2014-11-23 43 views
0

我必須從命令行讀取文本文件中的數據。在每行中閱讀並不難,但我需要一種方法來分隔每行的每一部分。Python:從文件中讀入數據

該文件包含下述順序的幾百行:
字符串(有時超過100字)
整數
字符串(有時超過100字)
整數

因此,例如輸入可能有:

Hello 5 Sample String 10 

我在每行讀取的當前實現如下...我如何修改它以分離把它變成我想要的東西?我試圖分割線,但我總是以這種方式獲得第一個字符串只有一個字符,沒有整數或第二個字符串的任何部分。

with open(sys.argv[1],"r") as f: 
    for line in f: 
     print(line) 

所需的輸出將是:

Hello 
5 
Sample String 
10 

等爲文件中的每一行。文件中可能有成千上萬行。我只需要分開每個部分,以便我可以分別與他們合作。

+0

你的問題不清楚,最新的問題是什麼?你能添加一個願望的輸入和輸出嗎? – Kasramvd 2014-11-23 20:55:39

+0

更清楚地指定行格式 – user3684792 2014-11-23 20:58:41

+0

修復了問題 – mich97 2014-11-23 21:05:02

回答

0

該程序不能以您想要的方式神奇地分割線條。您需要一次讀入一行,並根據格式自行解析。

由於有兩個整數和一個不確定數量的(我認爲是)空格分隔的單詞,因此您可以使用正則表達式來查找整數,然後使用它們作爲分隔符來分割該行。

+0

感謝您的輸入。我弄清楚了我正在努力做什麼。我能夠使用readline,然後訪問部分行。例如行[12:18]給我的字符12到18。 – mich97 2014-11-25 02:47:42

+0

這肯定會工作,假設你的線條是固定寬度的格式。 – 2014-11-25 03:20:05

+0

他們是,我應該提到這一點。 – mich97 2014-11-25 03:41:42