#!/usr/bin/python
import sys
def main():
f=open("a",'r')
line1=f.readlines()
f.close()
try:
sys.stdout.write(line1)
except:
print "?"
if __name__ == "__main__":
main()
回答
f.readlines()
不返回單個字符串,它返回列表。即使只有一條線!所以sys.stdout.write()
不知道如何處理。如果遍歷該行列表,並嘗試寫入每一行,那麼它工作得很好:
#!/usr/bin/python
import sys
def main():
f = open("a",'r')
lines = f.readlines() # lines is actually a list
f.close()
print lines # You'll see your issue, here!
try:
for line in lines:
sys.stdout.write(line) # Works now
except:
print "?"
if __name__ == "__main__":
main()
順便說一句,爲什麼不只是使用'text = f.read()'? –
@KevinGuan事實上,如果可以的話,最好的選擇就是簡單地使用'for line in f:'而不需要指定。文件對象本身是一個將逐行返回行的迭代器。另請注意,'f.read()'只是將整個文件作爲一個塊讀取,而'readlines()'將行分割成一個列表。所以他們做不同的事情,取決於你想要的功能。 – Symmitchry
是的,我知道,我想如果OP只是想打印出來的文件,但是'f.read()'或'for line in f:'比'f.readlines()'更簡單:P –
- 1. 爲什麼我的想法不能在python2中工作?
- 2. 工作在python2但不在python3中是什麼錯誤?
- 3. 爲什麼「>」在python2中的subprocess.call中不起作用
- 4. 爲什麼pymongo不能使用python3,它只能與python2兼容
- 5. python正則表達式在regex101上工作,但不能在python2中工作
- 6. Sys.stdout.write不按預期方式工作
- 7. 爲什麼jquery不能在wordpress的小工具中工作?
- 8. 爲什麼我的功能不能在phtml文件中工作?
- 9. 爲什麼.scrollLeft不能在超時功能中工作?
- 10. 爲什麼Subclipse只能在一些Ecliplse工作區中工作,而不能在其他工作區中工作?
- 11. 爲什麼我的fputcsv不能工作?
- 12. TTimer爲什麼不能正確工作?
- 13. 爲什麼blur()不能工作?
- 14. 爲什麼MotionEvent仿真不能工作?
- 15. 爲什麼不能removeClass()和addClass()工作?
- 16. 爲什麼strcasecmp不能正常工作?
- 17. VB.NET:爲什麼不能這樣工作?
- 18. 爲什麼usb_driver不能正常工作...?
- 19. jQuery.fn - 爲什麼不能正常工作?
- 20. 爲什麼addEventListener不能正常工作?
- 21. 爲什麼puts()不能正常工作
- 22. 爲什麼我的UIButton不能工作?
- 23. 爲什麼Javascript不能正常工作?
- 24. 爲什麼YouCompleteMe不能正常工作?
- 25. 爲什麼marginBottom不能正常工作?
- 26. 爲什麼synchronizedList不能正常工作
- 27. 爲什麼Bitblt不能工作
- 28. 爲什麼mysql_real_escape_string()不能正常工作?
- 29. 爲什麼不能正常工作?
- 30. 爲什麼CefSharp不能正常工作?
您正在嘗試將列表寫入打開的文件描述符。你需要寫一個字符串。我想你以後是'line1 = f.readline()'(不是'f.readlines()') – inspectorG4dget