将几个批处理脚本命令翻译成 python [关闭]
Posted
技术标签:
【中文标题】将几个批处理脚本命令翻译成 python [关闭]【英文标题】:Translate several batch script commands into python [closed] 【发布时间】:2021-10-04 21:36:18 【问题描述】:我在这里将我的几个命令翻译成 python 有点麻烦,我也在使用第 3 方软件和它自己的 CLI 命令以及批处理,我的批处理代码通过文件并从该文件中获取所有行一些路径并将它们包含在第 3 方 sw 内所需的位置:
FOR /F %%i in (C:\folder1\folder2\folder3\folder4\File.d) ^
DO tessycmd add-include-dir %%i
我正在尝试在 python 中翻译它,到目前为止我的代码如下所示:
os.system ('FOR /F %%i in (C:\folder1\folder2\folder3\folder4\File.d')+ '^'
result = os.system('DO tessycmd add-include-dir %%i')
我的代码不起作用,我得到的只是如下错误:
“此时 %%i 出乎意料”和 “DO 未被识别为内部或外部命令。”
如果我应该采用不同的方法,有什么想法或建议吗? 谢谢!
【问题讨论】:
你正在执行命令行,所以不要使用批处理语法。在命令行上,将每个%%i
替换为 %i
。
哦 - 和 ^
因为“命令行继续”不能以这种方式工作。您碰巧拆分了行并执行了两个cmd
进程,每个进程都有半个命令。
我不知道 phyton,但根据你的代码示例,这应该可以工作:result = os.system ('FOR /F %i in (C:\folder1\folder2\folder3\folder4\File.d) DO tessycmd add-include-dir %i')
(可能你必须给它提供tessycmd
的完整路径)
我不敢相信 python 无法读取文件的每一行,而无需请求内部 cmd.exe 命令来代替。
@John,python 运行 CLI,pythonw 运行 GUI。你不需要让 cmd.exe 读取文件,python 可以打开它,读取它,使用它执行命令,然后关闭它。
【参考方案1】:
好的,所以我设法通过以下方式找到解决方案:
result = os.system ('FOR /F %i in (C:\folder1\folder2\folder3\folder4\File.d) DO tessycmd add-include-dir %i')
【讨论】:
【参考方案2】:正如其他评论者所指出的,将所有处理都推到 shell 中,这首先违背了使用 Python 的目的。您可以改为执行以下操作:
with open('C:\folder1\folder2\folder3\folder4\File.d') as file:
for line in file:
os.system(f'tessycmd add-include-dir line')
【讨论】:
这也可以,我同意,谢谢!以上是关于将几个批处理脚本命令翻译成 python [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
python 作为“批处理”脚本(即从 python 运行命令)