次のように、ティッカーシンボルのリストをテキストファイルに保存しました。
MMM
ABT
ABBV
ANF
....
次に、readlinesを使用して、シンボルをPythonリストに入れます。
stocks = open(textfile).readlines()
ただし、そのリストを見ると、Windowsの行末区切り文字が含まれていますが、これは望ましくありません。
list: ['MMM\r\n', 'ABT\r\n', 'ABBV\r\n', 'ANF\r\n', 'ACE\r\n', 'ACN\r\n', 'ACT\r\n', 'ADBE\r\n', 'ADT\r\n', 'AMD\r\n', 'AES\r\n', .....
誰かがこれらの不要な文字を削除する最も簡単な方法を提案できますか?
それが基本的にreadlines
の仕組みです。あなたはそれを後処理することができます:
stocks = [x.rstrip() for x in stocks]
しかし、EOL文字が必要ない場合は、readlines
をまったく使用せず、代わりに次のようにします。
stocks = open(textfile).read().splitlines()
またはさらに良い:
with open(textfile) as f:
stocks = f.read().splitlines()
(ほぼ確実にここでは違いはありませんが、コンテキストマネージャーを使用してファイルオブジェクトを明示的に閉じることは、良い習慣です)
ファイルが本当に小さいことがわかっている場合を除き、readlines()
を使用しないでください。アプリケーションでは、rstrip()
を使用することをお勧めします
with open(filename, 'r') as f:
for l in f:
l = l.rstrip()
# other operations.
replace
コマンドで\r\n
を空の文字列に置き換えることができます。
stocks = [x.replace("\r\n","") for x in stocks]
次のようにできます:
stocks = open(textfile).read().splitlines()