2011-05-03 74 views
9

我正在尋找一種方法在python中實現與unix cut實用程序類似的功能。我知道我可以進行系統調用並以這種方式處理我的數據,但是我想使它更加「pythonic」,並使用python庫進行處理。Python切割示例

示例文本

abcde:12345 

我想劃上:並保持第二場:

cut -d':' -f2 

產生:

12345 

想法?

+1

怎麼樣像'回聲'abc:123:def:456'| cut -d':'-f1,3'?是否有可能從單個split()方法中獲得字段1和3,即如何組合索引[1]和[3]? – 2013-05-15 12:01:29

回答

12

你可以這樣做:

string.split(":")[1] 

其中字符串是文本

4

試試這個:

'abcde:12345'.split(':')[1] 
+0

我編輯了你的錯字:) – Trufa 2011-05-03 01:01:29

+0

@Trufa:謝謝。 – 2011-05-03 01:05:43

2

肯定的:

for line in open('data.txt'): 
    second_field = line.rstrip('\n').split(':')[1] 

你可以使它更可配置的,甚至用optpar寫你自己的se或argparse ...讓我們更多地瞭解您想要做的事情。

+0

如果只有2個字段,則該代碼將包含換行符;最好在分割之前執行'line.rstrip('\ n')',即rstrip *。 – 2011-05-03 01:04:33

+0

@John謝謝,如果它有不同種類的換行符,我還沒有指定\ n – Henry 2011-05-03 01:14:04

+0

它在文本模式下不能有不同形式的換行符。你已經刪除了所有/任何尾隨的空白,這是過度殺傷。如果這是需要的,它應該在每個感興趣的領域完成。 – 2011-05-03 01:34:41