2017-06-01 59 views
-2

我正在使用python 3.6.1。我是用Python自學的..我無法理解這個錯誤是什麼。寫入SSol.txt已成功,但是如何讀取SSol.txt?

這裏是我的代碼:

from tkinter import * 
from tkinter import ttk 
from tkinter import messagebox 
import urllib.request as request  

def a():  
    url=("https://rp5.ru/%EC%95%88%EB%8F%99%EC%9D%98_%EB%82%A0%EC%94%A8,_%EA%B2%BD%EB%B6%81") 
    raw_data = request.urlopen(url).read() #Bytes 
    text = raw_data.decode("utf-8") 
    where = text.find('k;">') 
    start_where = where +4 
    end_start = where +7 
    f = open("SSSol.txt", 'w+') 
    decoded = int(text[start_where:end_start]) 
    k=f.write(str(decoded)) 
    t = str(f.readline()) 
    messagebox.showinfo("hello",t) 

ttk.Button(win, text="?", command=a).grid() 

enter image description here

沒有出現錯誤,但是什麼也沒有輸出。

+0

也許倒退文件'f.seek(0)'。或關閉文件並再次打開以便寫入。 –

回答

0

問題是您在寫入後重新使用f句柄。

f = open("SSSol.txt", 'w+') 
decoded = int(text[start_where:end_start]) 
k=f.write(str(decoded)) 

那部分是好的。現在:

t = str(f.readline()) 

你從文件末尾看了那麼t是一個空字符串。因此,要麼:

  • f.seek(0)第一倒帶文件
  • 密切f,再次打開它,這次使用r模式(只讀)。 (會更安全反正)

(這麼說,我想,這是不是你真正的代碼,如寫作+閱讀同樣的方法相同的文件是相當無效的,當你已經有緩衝方便)