博主最新文章
|
||
|
||
日志正文
|
||
在一个Python程序中执行另一个Python程序 今年在上python的课,大家都知道有上课,则必有考试,新年以来都在做一个Python的考试系统,在程序的编码过程中就需要用使用到在python代码中执行学生上传的Python文件代码的功能。在网上搜索了一下,结合自己的应用,总结如下: 1、os.system import os
res = os.system('python d:/python/filename.py') 上述代码使用了os模块,通过os的system方法,在当前进程中打开一个子shell(子进程)来执行系统命令。在该命令中就是在python中直接
执行d:/python/filename.py文件的程序代码。
这个方法只返回状态码(res),执行结果会输出到stdout,也就是输出到终端。 虽然使用这种方法可以正常的执行任何程序,但缺点是每次运行都会进入python交互式环境(出现黑色窗口),在程序执行完成后正常退出, 这影响了效果。 2、os.popen import os f = os.popen('python F:/上课内容/2020-2021-2/课件/1.py < F:/上课内容/2020-2021-2/课件/1.txt', 'r') res = f.readlines() res 在上述命令中,python后的第一个参数1.py文件是需要运行的Python文件,第二个参数1.txt文件是1.txt运行时的输入,注意在1.py文件运行时需要用户输入时才需要这个参数。 这个方法文件描述符,可以从这个文件描述符中读取该程序的执行结果。这时使用readlines()方法将输出结果读取到res中。只要分析res中的值就可以知道程序的执行结果结果是否正确。 os.popen() 功能强于os.system() ,是使用进程方法运行的,运行时不会出现黑色窗口,适合在考试系统中使用。
最后修改于 2021-03-13 13:28
阅读(?)评论(0)
上一篇: Python中操作sqlserver
下一篇:C#对DataTable里数据排序的方法
|
||
评论 想第一时间抢沙发么?