2016-07-19 3 views
-2

設定ファイルを作成して、私のpythonスクリプトが再起動後に設定を記憶できるようにしたい。私はf.readline()というコマンドを使用しましたが、出力は私が読んだ行の量を与える異なっています。readline()が正しい行を出力しない

例: テキストドキュメントは

1 
2 
3 

であり、私はこのスクリプトを使用する際の情報をプリントアウトします。

f = open("test.txt", "r") 

print(f.readline(1)) 
print("-") #i used this to see if the output is blank since it will leave a empty space  
print(f.readline(2)) 
print("-") 
pirnt(f.readline(3)) 
print("-") 

出力は次のようになります。

- 
1 
- 


- 
2 

- 

誰かが私が間違っているのかを説明することができますか私はそれをどのように改善できますか?

+0

期待される出力は何ですか? –

+0

ドキュメントをチェックして、その番号(例えば、f.readline(2)の2)が何を表しているか確認しましたか? – ayhan

+0

'f.readline()'は数値を渡さずに**以前は停止した場所からファイルを読み込みます**。これは、すべての数字を省略することができ、あなたが望むものを得ることを意味します。そしておそらく、出力の上部に空の行を忘れていたでしょう。 –

答えて

0

パラメータreadlineは、読みたい行の数ではなく、必要なバイト数です。

は、あなたが readlines()を使用することができます行番号でファイル にアクセスするには:

f = open("test.txt", "r") 
lines = f.readlines() 
print(lines[0]) 
print("-") #i used this to see if the output is blank since it will leave a empty space  
print(lines[1]) 
print("-") 
pirnt(lines[2]) 
print("-") 

readlines()線で一度ではなく行のすべてのファイルを取得することに注意してください。時にはそれはあなたが本当にやりたいことではありません。

1

readlineの署名はあなたが行毎にファイルを読み込むする場合しかし、あなたは必要としない、指定したオプションのサイズ引数を取ります:

f.readline(1) 
#  ^read 1 byte 

パラメータは、と同義ではありません行番号とします。

あなたが本当にラインでラインを読むことを意図しているので、あなたがこのサイズパラメータを指定しないでください。

f.readline() # reads one line at a time 

空行が'\n'を返し、ファイルの最後に、あなたは''を持っています。