Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.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 关于tkinter目录路径_Python_Tkinter - Fatal编程技术网

Python 关于tkinter目录路径

Python 关于tkinter目录路径,python,tkinter,Python,Tkinter,我想在#here中插入文件的路径!但我的终端名称“dirname”未定义消息:( 我不知道为什么会发生这种错误..我省略了一些代码:)。。。谢谢你的阅读 import tkinter from tkinter import * from tkinter import messagebox from tkinter import filedialog from PIL import Image import pytesseract def ask(): dirname = filedia

我想在#here中插入文件的路径!但我的终端名称“dirname”未定义消息:(

我不知道为什么会发生这种错误..我省略了一些代码:)。。。谢谢你的阅读

import tkinter
from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
from PIL import Image
import pytesseract

def ask():
    dirname = filedialog.askopenfile(
        initialdir='C:/Users/PC/Desktop',
        title='파일 선택',
        filetypes=(('png 파일','*.png'), ('jpg 파일', '*jpg'), ('모든 파일 보기', '*.*'))
    )
    filename = tkinter.filedialog.asksaveasfilename()
    Txt.configure(text='경로 :' + dirname.name)

def ocr():
    pytesseract.pytesseract.tesseract_cmd = r'C:\Users\PC\AppData\Local\Tesseract-OCR\tesseract.exe'
    text = pytesseract.image_to_string(Image.open(#here!), lang="kor")
    print(text)

Txt = Label(window, text = ' ')
Txt.pack()

path_button = Button(window, text="경로 선택하기", command = ask)
path_button.pack()

button = Button (window, width = 10, text = "선택하기", overrelief="solid", command = ocr) # 확인 버튼
button.pack()

window.mainloop()
ask()
中设置变量:
dirname
filename

默认情况下,这两个变量设置为局部变量(它们在
ask()
函数外不可见)。这就是你无法访问它们的原因

您可以通过将其设置为全局来修补此问题:

导入后的
#
filename=“some\u default\u filename.png”
dirname=“/some/default/path/”
#在ASK()的开头插入此选项
def ask():
全局文件名
全局目录名
文件名=#你的代码
#您将能够访问OCR()
def ocr():
#.......
Image.open(dirname+filename)
#.......
请注意,如果不需要编辑该变量,则不需要将其声明为全局变量,python默认情况下将假定为全局变量。如果愿意,您仍然可以添加
global dirname
global filename
,代码也会运行