2016-10-06 2 views
2

私は、txtファイルからPython 2.7で株式ティッカーの配列を作成しようとしています。私はのようなルックスを使用していPython-txtから配列を作成する

SRCE 
ABTX 
AMBC 
ATAX 

コード:txtファイルは、単純な行につき1つのティッカーを持って

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' 

正しい文字は存在しますが、プレーンテキストでは印刷されません。私はいくつかのロジックメソッドを使用して配列に値を設定しましたが、同じ出力形式を得ています。

+1

は[ 'numpy.loadtxt'](HTTPを見てください/docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.loadtxt.html)。これは普通の開封と読書よりもうまくいくはずです。 – Ian

+0

'r'filename.txt'openから' r'を削除するとどうなりますか? –

+0

@Chris_Rands無効なモードまたはファイル名エラーが発生します。 – BCM

答えて

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'] 

我々はf.readlines()によって返さlistオブジェクトを繰り返し処理しているときに、我々は改行\n文字を削除する必要があります。これを行うにはstrタイプのためにstrip()メソッドを使用します。

編集2:@Eliは正しいです。 for ticker in f.readlines()の代わりにfor ticker in fを使用することもできます。

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

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

'readlines'を使う必要はありません。ちょうど 'fのチッカーのための'をしなさい。ファイル全体をRAMに読み込む必要はありません。 –

+0

私はあなたの問題を解決したとはっきりしていません、OPの現在の出力を複製できますか? –

+0

OPのコードは実際に私のために働く。自分のコードと同じ結果をコードから得ることができます。私は、テキストファイルに無関係の文字があるかどうか疑問に思います。 – blacksite

0

私はついに修正を見つけました。

私は、その後の.csvとして保存する1行に1列からテキストファイルを変更しなければならなかったとにコードを変更:/:

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) 
関連する問題