Python: 用竖线符号“|”拆分字符串

10

看看下面的字符串:

E|1256280||2014-01-05 17:54:00|1|2014-01-05 18:59:53|True

我想根据管道符号“|”对其进行分割。因此,我使用以下Python代码(其中line是包含上述描述字符串的字符串):

                print line
                print str(type(line))
                print str(line[1])
                parts = line.split['|']
                print str(parts)

然而,当使用这段代码时我得到了以下的错误:

E|1256280||2014-01-05 17:54:00|1|2014-01-05 18:59:53|True
<type 'str'>
|
Traceback (most recent call last):
  File "/path/to/my/pythonscritp.py", line 34, in crawl_live_quotes
    parts = line.split['|']
TypeError: 'builtin_function_or_method' object is not subscriptable

然而,我不明白我在这里做错了什么。 有什么建议吗?


你需要使用 () 而不是 [] - Ashwini Chaudhary
1
str.split 是一个函数。你应该用圆括号调用函数,而不是方括号。 - Blender
哦,太感谢了 :) - toom
2个回答

23

这个

parts = line.split['|']

应该是

parts = line.split('|')
(即使用圆括号而不是方括号。)

4
为了调用一个方法,需要在参数周围使用()
parts = line.split('|')

不是使用序列索引的语法[]

我会使用csv 模块,并将阅读器配置为以|字符作为分隔符:

import csv

with open(filename, 'rb') as infh:
    reader = csv.reader(infh, delimiter='|')
    for row in reader:
        print row

它将为您处理拆分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接