如何读取 save.txt 文件并将其设置为标签

Posted

技术标签:

【中文标题】如何读取 save.txt 文件并将其设置为标签【英文标题】:How to read save.txt file and set it to label 【发布时间】:2020-11-21 09:40:38 【问题描述】:

(我正在使用 tkinter 和 pytube 制作 gui 应用程序,它会将您的 youtube 视频下载到您所在的目录。) 你好,我正在用python制作我自己的应用程序,但这并不容易。我想不出解决办法。我希望我的应用程序进行保存。每次我选择一个目录时,它都会写入 save.txt 文件,但是当我启动应用程序时,我不知道如何将文件加载到显示当前目录的标签中。我也想更改ytbvideo.download(path)。我想读取我的 save.txt 文件而不是路径。在我的 saves.txt 文件中只有目录。例如,saves.txt 现在是 C:/Python/VideoDownloader,所以如果应用程序读取了 save.txt,我猜这应该不是问题。这是我的代码,它工作正常,所以唯一的问题是,我不知道要添加什么。 这是我的代码:

import os
from tkinter import Text, Label, Tk, Entry, StringVar, Button
from tkinter import filedialog
import tkinter as tk



root= Tk()
root.geometry('600x400')
root.title('Youtube Video Downloader')
root.configure(bg='gray')



Label_1=Label(root,text="Youtube video downloader", font=("bold",20), bg='gray')
Label_1.place(x=150,y=10)

Label_2=Label(root, text="Paste the link here", font=(10), bg='gray')
Label_2.place(x=240, y=75)



mylink=StringVar()

pastelink=Entry(root, width=60, textvariable=mylink)
pastelink.place(x=140, y=100)



def chooseDir():

   
    global path
    path = filedialog.askdirectory(title="Choose a download directory")
    tk.Label(root, text=path, bg='gray').place(x=240,y=300)
    saves()

def downloadVideo():
    videoLink=str(mylink.get())
    ytbvideo=YouTube(videoLink).streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first()
    ytbvideo.download(path)




def saves():
    saves = open('data.txt', 'w')
    saves.write(path)   



    
def quitApp():
    root.destroy()
    



   

Button(root,text="Download video", width=20, bg='black',fg="white", command=downloadVideo).place(x=240, y=130)
Button(root,text="Choose location", width=20, bg='black',fg="white", command=chooseDir).place(x=240, y=160)
Label_3=Label(root, text="Curent location: ", font=("bold"), bg='gray')
Label_3.place(x=250, y=245)

Label_3=Label(root, text="by yakubiq", font=("bold"), bg='gray')
Label_3.place(x=0, y=375)

Button(root,text="Quit", width=20, bg='black', fg='white', command=quitApp).place(x=445, y=370)






root.mainloop()

【问题讨论】:

【参考方案1】:

您必须在阅读模式下打开 save.txt,如下所示:

 savesReader = open("data.txt", 'r')

然后您可以使用 savesReader.read() 从“data.txt”文件中读取。

【讨论】:

@JohnyPro 是的,但是每次更改目录时我都无法编辑该文件 @JohnyPro 我可以那样做吗? def saves(): saves = open('data.txt', 'w') saves.write(path) saves = open('data.txt', 'r') data = saves.read() 好吧,如果你想同时读取和写入文件,你可以使用open("data.txt", 'w+')而不是open("data.txt", 'r') @JohnyPro 但仍然无法正常工作,当我启动应用程序时目录不显示def chooseDir(): global path path = filedialog.askdirectory(title="Choose a download directory") tk.Label(root, text=data, bg='gray').place(x=240,y=300) saves() def downloadVideo(): videoLink=str(mylink.get()) ytbvideo=YouTube(videoLink).streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first() ytbvideo.download(data) def saves(): saves = open('data.txt', 'w+') global data data = saves.read() @JohnyPro 这是错误,当我想选择目录时,但在开始时,当它应该将标签从无更改为 data.txt 中的目录时,没有任何错误。 Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1702, in __call__ return self.func(*args) File "C:\Python\VideoDownloader\VideoDownloader.py", line 36, in chooseDir tk.Label(root, text=data, bg='gray').place(x=240,y=300) NameError: name 'data' is not defined【参考方案2】:

这样做:

var=open('[file directory]', 'r')
myvar= var.readlines()
tklabel=Label(root, text=f"myvar", font=(10), bg='gray')
var.close()

【讨论】:

以上是关于如何读取 save.txt 文件并将其设置为标签的主要内容,如果未能解决你的问题,请参考以下文章

隐藏或保护 .txt 保存数据 c#

如何读取 csv 文件并将其应用于 tensorflow

如何使用 groovy 读取文件并将其内容存储为变量?

如何从单个文件中读取不同的模式 json 对象并将其保存到表中

如何从外部 api 读取属性并将其设置为 springboot 中的应用程序上下文以使其全局可用?

如何在 Swift(CreateML) 中读取文本文件的内容并将其解析为字典