我正在尋找一種方法在python中實現與unix cut
實用程序類似的功能。我知道我可以進行系統調用並以這種方式處理我的數據,但是我想使它更加「pythonic」,並使用python庫進行處理。Python切割示例
示例文本
abcde:12345
我想劃上:
並保持第二場:
cut -d':' -f2
產生:
12345
想法?
我正在尋找一種方法在python中實現與unix cut
實用程序類似的功能。我知道我可以進行系統調用並以這種方式處理我的數據,但是我想使它更加「pythonic」,並使用python庫進行處理。Python切割示例
示例文本
abcde:12345
我想劃上:
並保持第二場:
cut -d':' -f2
產生:
12345
想法?
你可以這樣做:
string.split(":")[1]
其中字符串是文本
試試這個:
'abcde:12345'.split(':')[1]
我編輯了你的錯字:) – Trufa 2011-05-03 01:01:29
@Trufa:謝謝。 – 2011-05-03 01:05:43
肯定的:
for line in open('data.txt'):
second_field = line.rstrip('\n').split(':')[1]
你可以使它更可配置的,甚至用optpar寫你自己的se或argparse ...讓我們更多地瞭解您想要做的事情。
如果只有2個字段,則該代碼將包含換行符;最好在分割之前執行'line.rstrip('\ n')',即rstrip *。 – 2011-05-03 01:04:33
@John謝謝,如果它有不同種類的換行符,我還沒有指定\ n – Henry 2011-05-03 01:14:04
它在文本模式下不能有不同形式的換行符。你已經刪除了所有/任何尾隨的空白,這是過度殺傷。如果這是需要的,它應該在每個感興趣的領域完成。 – 2011-05-03 01:34:41
怎麼樣像'回聲'abc:123:def:456'| cut -d':'-f1,3'?是否有可能從單個split()方法中獲得字段1和3,即如何組合索引[1]和[3]? – 2013-05-15 12:01:29