Python os.system无缘无故挂起?

时间:2018-11-24 08:02:38

标签: python subprocess

我认为以前没有问过这个问题,但是我读过类似的问题,但没有一个可以解决我的问题。我正在使用sqlite3在Tkinter中进行文件管理。它具有一个“写入”按钮,单击该按钮可使用os.system打开一个新的记事本文件。但是,代码被卡在此处,无法继续进行下一行。

def openfile(uid, filename):
if filename=='':
    mb.showerror('Missing Input', 'Please specify a file name.')
else:
    try:
        os.system("notepad " +filename+".txt") #FREEZES HERE
        now=datetime.now()
        today= str(now.day) + '/' + str(now.month) +'/' + str(now.year)
        filecur.execute("SELECT * FROM File_Data")
        f=filecur.fetchall()
        print(f)
        filecur.execute("insert into File_Data (UID, FileName, Date_) values (?, ?, ?)", ( uid, filename, today))
        fileconn.commit()
    except:
        raise
        mb.showerror('Error','Looks like something is wrong. Please try again.')
        sys.exit(0)

如果有人可以帮助,那就太好了。谢谢!

1 个答案:

答案 0 :(得分:1)

那是因为os.system()确实在返回之前等待其过程完成。

可以通过使用线程或子流程模块来解决问题。

在此处了解更多信息:http://docs.python.org/library/subprocess.html