Python中的txt创建数组

时间:2016-10-06 13:54:37

标签: python arrays python-2.7

我正在尝试从txt文件在Python 2.7中创建一系列股票行情。 txt文件每行只有1个自动收报机,如:

SRCE
ABTX
AMBC
ATAX

我正在使用的代码如下:

FinTick= []

    def parseRus():
        try:
        readFile=open(r'filename.txt','r').read()
        splitFile=readFile.split('\n')
        FinTick.append(splitFile)
        print FinTick



        except Exception, e:
        print str(e)

当我调用'parseRus()'时,我得到一个看起来像的输出:

'\xff\xfeS\x00R\x00C\x00E\x00\r\x00', '\x00A\x00B\x00T\x00X\x00\r\x00', '\x00A\x00M\x00B\x00C\x00\r\x00', '\x00A\x00T\x00A\x00X\x00\r\x00'

存在正确的字母但不在平面文本中打印。我已经使用了一些其他逻辑方法来填充数组,但仍然获得相同的输出格式。

2 个答案:

答案 0 :(得分:2)

>>> tickers = []
>>> with open("filename.txt", "r") as f:
        for ticker in f.readlines():
            tickers.append(ticker.strip())


>>> tickers
['SRCE', 'ABTX', 'AMBC', 'ATAX']

请尝试使用readlines()strip()

修改:f.readlines()strip()周围的清晰度:

>>> with open("filename.txt", "r") as f:
        print(f.readlines())

['SRCE\n', 'ABTX\n', 'AMBC\n', 'ATAX']

因此,当我们重复list返回的f.readlines()对象时,我们需要删除换行\n个字符。使用strip()类型的str方法执行此操作。

编辑2:@Eli是对的。我们也可以使用for ticker in f代替for ticker in f.readlines()

>>> tickers = []
>>> with open("filename.txt", "r") as f:
        for ticker in f:
            tickers.append(ticker.strip())

>>> tickers
['SRCE', 'ABTX', 'AMBC', 'ATAX']

答案 1 :(得分:0)

我终于找到了解决办法。

我必须将文本文件从1列修改为1行,然后保存为.csv并将代码修改为:

FinTick= []

def parseRus():
    try:
        readFile=open(r'filename.csv','r').read()
        splitFile=readFile.split(',')
        for eachLine in splitFile:
            splitLine=eachLine.split(',')
            ticker=splitLine[0]
            FinTick.append(ticker.strip())



    except Exception, e:
    print str(e)