2011-05-03 75 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