python - Python os.system 无缘无故挂起?
问题描述
我认为以前没有人问过这个问题,但是我读过类似的问题,但没有一个可以解决我的问题。我正在使用 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)
如果有人可以提供帮助,那就太好了。谢谢!
解决方案
那是因为 os.system() 确实在返回之前等待其进程完成。
问题可以通过使用线程或子进程模块来解决。
在这里阅读更多:http: //docs.python.org/library/subprocess.html
推荐阅读
- selenium - 无法通过远程 selenium webdriver 运行 PhantomJS UI 测试
- c# - 如何区分和计算列表框中的重复项?
- next.js - trouble implementing SEO correctly in next.js app using next-seo
- mysql - SQL - 截断不正确的 DOUBLE 值
- flutter - 具有多个滚动方向的 Flutter 列表视图
- python - 始终以相同的速度将物体移向特定坐标并超出坐标
- r - 将多个加载的变量写入不同的 .txt 文件
- java - 使用 useSystemProperties() 创建 HttpClient
- java - 将 Spark DF 过滤到只有 2 位小数的列,而不使用舍入/下限
- sql - 使用数据透视的分离组的聚合总和?