Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
412 views
in Technique[技术] by (71.8m points)

python - f.read coming up empty

I'm doing all this in the interpreter..

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

at this point i can do file1.read() and it prints the file's contents as a string to standard output

but if i add this..

string1 = file1.read()

string 1 comes back empty.. i have no idea what i could be doing wrong. this seems like the most basic thing!

if I go on to type file1.read() again, the output to standard output is just an empty string. so, somehow i am losing my file when i try to create a string with file1.read()

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can only read a file once. After that, the current read-position is at the end of the file.

If you add file1.seek(0) before you re-read it, you should be able to read the contents again. A better approach, however, is to read into a string the first time and then keep it in memory:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...