• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

如何在一个py程序里执行另一个py程序?

python 搞代码 4年前 (2022-01-09) 28次浏览 已收录 0个评论
文章目录[隐藏]

在搜索引擎上搜过,未果
问题的详细描述:假设在桌面有一个“A.py”,当A.py被运行的时候会自动打开“B.py”(不在桌面,而是在其他路径,并且这个路径已知)。

实现效果类似于如下代码:

<span class="kn">import</span> <span class="nn">os</span><span class="n">start_dire</span> <span class="o">=</span> <span class="s">r"E:\*.txt"</span><span class="n">os</span><span class="o">.</span><span class="n">system</span><span class="p">(</span><span class="s">"explorer.exe </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span><span class="n">start_dire</span><span class="p">)</span>

回复内容:

考虑到题主是新手,我就多说几个方法

0. runpy.run_path(‘my_awesome_program.py’)
首选这个方法,全平台通用

1. 直接import那个文件(如果那个文件没本文来源gao($daima.com搞@代@#码(网5加__name__==’__main__’判断的话),如果文件名是变量的话,用__import__(‘my_awesome_program’)

2. os.startfile(‘my_awesome_program.py’)
这是windows-only的,自己用用还行,稍微大一点的项目就别用了

3. os.system(‘python “%s”‘ % ‘my_awesome_program.py’)
但如果对方电脑的python不在%path%里就挂了,因此还是仅限自己用

4.用subprocess,命令行同上,用法请自行百度或者查文档
同样也仅限自己用

5. 你试试execfile(‘my_awesome_program.py’),我没试过,不确定行不行
UPDATE: 我试过了,可以,好像这个也是全平台通用的。Python不知道,不过Perl语言有一个内置变量$^X,其内容是正在执行当前脚本的Perl解释器的路径。可以用那个变量的内容去执行另一个Perl脚本:

<code class="language-text">system($^X, "another_script.pl");</code>

先读.py的文件,然后使用eval函数执行.py的文件内容,或者用import至少有两种方法,假定b.py在E盘的根目录:
1. 把B.py所在的路径加入系统路径:

<code class="language-python"><span class="kn">import</span> <span class="nn">sys</span><span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">'E:/'</span><span class="p">)</span><span class="kn">import</span> <span class="nn">b</span><span class="n">b</span><span class="o">.</span><span class="n">foo</span><span class="p">()</span></code>

把explorer.exe换成python.exe试试
还可以通过import来执行其他文件里的代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何在一个py程序里执行另一个py程序?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址