2011-02-10 5 views
1

を考え出すは、この時点で..私は通訳にこのすべてをやって空

loc1 = '/council/council1' 
file1 = open(loc1, 'r') 

をf.read私は(file1.readを行うことができます)、それが標準出力に文字列としてファイルの内容を印刷します

が、文字列1が空に戻ってくる

string1 = file1.read() 

..私はこれを追加した場合..私は私が間違っていることができるものは考えています。これは最も基本的なもののようです!

もう一度file1.read()を入力すると、標準出力への出力は空の文字列になります。だから、どういうわけかfile1.read()で文字列を作成しようとするとファイルが失われています

答えて

4

ファイルは1度しか読み取れません。その後、現在の読み取り位置はファイルの最後になります。

もう一度読む前にfile1.seek(0)を追加すると、内容をもう一度読むことができます。より良いアプローチは、しかし、文字列に最初の時間を読み込みメモリにそれを維持することです:あなたはそれを失うことはありません

loc1 = '/council/council1' 
file1 = open(loc1, 'r') 
string1 = file1.read() 
print string1 
-1

あなたの場所が正しいことを確認してください。実際にルートディレクトリ(/)の下に/councilというディレクトリがありますか?また、os.path.join()を使用してパスを作成してください。

loc1 = os.path.join("/path","dir1","dir2") 
+0

これにはありません質問に答えて。 – vaultah

2

、あなただけのファイルの最後にオフセットポインタを移動し、いくつかを読み取ろうより多くのデータ。ファイルの終わりなので、それ以上のデータは利用できず、空の文字列を取得します。ファイルを再度開くか、ゼロ位置に求めて試してみてください:それは(のpython 2.5以降)、それを使用した後のファイルへの接続を閉じているためwithを使用して

f.read() 
f.seek(0) 
f.read() 
0

は、使用するのに最適な構文は次のとおりです。

with open('/council/council1', 'r') as input_file: 
    text = input_file.read() 
print(text) 
関連する問題