用批处理文件bat 运行的py文件, 无法使用 os.system语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用批处理文件bat 运行的py文件, 无法使用 os.system语句相关的知识,希望对你有一定的参考价值。

正常情况下,做好py文件之后,使用bat批量启动py文件,都可以的。
但是在某个py文件A中,使用os.system()函数调用另外的py文件A1,,然后bat启动A文件之后,就会报错,这是怎么回事呢?

=====1. bat文件代码:
@echo off
cd E:\
python "E:\aaa.py" & PAUSE

=====2. aaa.py文件代码:
os.system('aaa1.py')

在Python中要执行其他模块的代码,直接import该模块即可。
import aaa1
os.system()表示调用cmd执行系统命令,而aaa1.py并不是可执行的命令或程序,应该调用python来执行,os.system('python aaa1.py')追问

受教了。。
如果我要先cd到某目录下,再执行aaa1.py的话,两个命令应该如何在os.system()中依次执行呢?应该怎么写?

追答

使用os.chdir()先行改变工作目录,或者使用os.system('cd xx & python xxx.py')将两个命令连起来执行。

参考技术A 报错是什么?找不到文件?
为什么前一个命令你用了全路径,后面又只写文件名?追问

错误内容如下:
aaa1.py 不是内部或外部命令,也不是可运行的程序 或 批处理文件
py文件中我添加了系统路径,,直接运行aaa.py文件是没有问题的。但是用bat运行aaa.py就出问题。

追答

os.system('python aaa1.py')至于为什么手动双击可以,但cmd不可以,可以看看是不是同一个用户?有没有涉及管理员身份等

win10家庭版,双击bat文件无法运行(double click bat file does not execute)

win10家庭版,双击bat文件无法运行,弹出文件打开方式选择框。

在网上搜索处理办法,试了以下方法1-5都没有成功,用方法6规避。

技术分享图片



方法1:
打开一个驱动器,点“工具-文件夹选项→文件类型→新建→扩展名”里输入BAT,点高级,在关联的类型里选择“MS-DOS批处理文件”,再确定

--因为我用的是win10家庭版,没找到对应位置。


方法2:
用管理员打开命令行,在命令行中分别输入下面两条命令:
assoc .bat=batfile
ftype batfile="%1" %*


方法3:
在用户变量下方点击“新建”,输入用户名%path%,以及变量值C:/windows/system32,点击确定;

方法4:
在注册表左侧依次展开:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.BAT  ;

然后将下面除了“OpenWithList”和“OpenWithProgids”之外的所有子项删除即可。

另外尝试从可以运行的电脑中的注册表,导出.bat部分,在问题电脑运行下。

方法5:
(1)首先按组合键win+r打开运行窗口,输入gpedit.msc并回车;
(2)在组策略左侧依次展开用户配置→管理模板→所有设置;
(3)在右侧往下移动,找到并双击打开【阻止访问命令提示符】;
(4)在“设置”界面下,就能看到这一项的启动状态可以把“已启用”改为“未配置”,然后按“应用”与“确定”,就可以完全解除。

--因为我用的是win10家庭版,不支持组策略。

方法6:
将bat文件后缀改为cmd,可以运行了。
















以上是关于用批处理文件bat 运行的py文件, 无法使用 os.system语句的主要内容,如果未能解决你的问题,请参考以下文章

bat 打开cmd 执行Python文件

如何用python运行bat文件?

win10家庭版,双击bat文件无法运行(double click bat file does not execute)

bat文件怎么运行

如何用bat文件定期卸载软件?

python自动运行cmd,bat文件