Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 写入SSol.txt是成功的,但我如何才能读取SSol.txt?_Python_Python 3.x - Fatal编程技术网

Python 写入SSol.txt是成功的,但我如何才能读取SSol.txt?

Python 写入SSol.txt是成功的,但我如何才能读取SSol.txt?,python,python-3.x,Python,Python 3.x,我正在使用python 3.6.1。我自学了Python。。我无法理解这个错误是什么 这是我的密码: 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

我正在使用python 3.6.1。我自学了Python。。我无法理解这个错误是什么

这是我的密码:

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()


没有发生错误,但没有输出任何内容。

问题是,在写入
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
    模式(只读)。(无论如何都会更安全)

(这就是说,我想这不是你真正的代码,因为当你手头已经有了缓冲区时,用同样的方法写+读同样的文件是相当无效的)

可能会倒带文件
f.seek(0)
。或者关闭文件并再次打开以进行写入。