猿问

线程函数后文件路径未保存

我正在使用线程搜索文件:


import threading

def thread(seconds):

    for root, dirs, files in os.walk('/'):

        for file in files:

            if file == 'Viber.exe':

                viber = os.path.join(root, file) 

                print(viber)

    print("Finish")

threading.Thread(target = thread, args = (1,), daemon = True).start()

之后我需要打开那条路:


import subprocess

subprocess.check_output(viber, shell=True)

但我收到错误:


NameError: name 'viber' is not defined

我不知道该怎么做,以及如何解决它(((请有人帮忙!


慕哥9229398
浏览 111回答 1
1回答

青春有我

当您viber在函数中声明变量时,python 认为该变量是本地变量,并会在函数结束时将其删除。您只需要声明viber为全局变量,这样函数就不会声明它自己的变量。viber = None   # declare global variable # add this lineimport threadingdef thread(seconds):    global viber    # use global variable  # add this line    for root, dirs, files in os.walk('/'):        for file in files:            if file == 'Viber.exe':                viber = os.path.join(root, file)                 print(viber)    print("Finish")threading.Thread(target = thread, args = (1,), daemon = True).start()###########import subprocesssubprocess.check_output(viber, shell=True)  # use global variable
随时随地看视频慕课网APP

相关分类

Python
我要回答