「python」「please」「work」などの行でファイルを反復しようとすると、「p」「y」「t」などの個々の文字しか返されないことに気付きました...
どうすれば完全な言葉を得ることができますか? 数時間試してみましたが、方法が見つかりません。私は最新バージョンのpythonを使用しています。編集:すべての引用符は改行です。
ファイル オブジェクトを反復処理できます。
for line in open('file'):
for word in line.split():
do_stuff(word)
詳細については、ドキュメントを参照してください: http://docs.python.org/2/library/stdtypes.html#bltin-file-objects
単語を文字列として保存している場合は、split 関数を使用して単語をスペースで分割できます。
>>> "python please work".split(' ')
['python', 'please', 'work']
複数の行にまたがる単一の文字列 (文字を含むなど'\n'
) にデータがある場合は、反復する前に分割する必要があります。これは、(文字列のリストではなく) 文字列を反復処理すると、単語や行ではなく、常に文字を反復処理するためです。
コード例を次に示します。
text = "Spam, spam, spam.\Lovely spam!\nWonderful spam!"
lines = text.splitlines() # or use .split("\n") to do it manually
for line in lines:
do_whatever(line)