批处理与Python命令比较?
好的,我有一些在批处理(batch)中使用的命令,我想知道在Python中有哪些类似的命令。为了明确,我不想对每个命令都使用 os.system("command here")。比如在批处理里,如果你想查看命令列表,你可以输入 help,而在Python中,你会输入 help() 然后是 modules。我并不是想在Python脚本中使用批处理命令,我只是想知道这两种语言之间的相似之处。就像英语里说“Hello”,而法语里说“Bonjour”,而不是把两种语言混在一起。(以下是我想了解的命令/函数列表:
- 更改当前目录
- 清除控制台屏幕
- 将提示符改为其他内容,而不是 >>>
- 如何创建一个循环函数
- 重定向/管道
- 如何在脚本中启动一个外部程序(比如记事本或画图)
- 如何调用或导入另一个Python脚本
- 如何在不输入 help() 的情况下获取特定模块的帮助
@8: (在批处理里可以用 command /?)
完全编辑过
提前谢谢你!
5 个回答
你提到的大部分东西(比如 start
、cls
等)其实并不是“批处理命令”,而是一些可以执行的程序,它们完成特定的任务。当DOS的“命令行”在文件中遇到这些命令时,它就会执行它们。从这个角度来看,“python”就像是一个单独的可执行程序(就像 cls
一样)。
现在这点清楚了,cd
(以及其他大多数操作系统特定的任务)可以通过使用 os模块来完成。其实没有一个单独的Python语句可以清屏——这样做会浪费资源。要改变Python解释器的提示符,可以给 sys.ps1
赋值。循环可以用 while
或 for
来实现。重定向并不会发生。不过,你可以使用 subprocess
模块来运行子命令,并将它们的输出发送到文件或其他流中。启动命令是通过 subprocess.Popen
函数来完成的。如果你需要帮助,可以使用 help("command")
,或者如果你在使用 ipython,只需输入 command?
然后按回车。
你真的应该去看看 教程,而不是试图把批处理 命令
映射到Python上。
你不能简单地把批处理脚本直接翻译成Python代码,然后就指望它能正常工作。因为这两种语言是不同的,它们有各自的表达方式和处理事情的方法,更不用说它们的用途也不同了。
下面我列出了一些和你想要的功能相关的Python函数,但最好的办法还是去学习Python本身!
os.chdir
:这个函数可以用来改变当前工作目录。os.system("cls")
:这个可能是最简单的解决方案,用来清屏。可以修改
sys.ps1
和sys.ps2
来改变提示符。Python里没有goto语句。你可以用
for
循环和while
循环来代替。这个说法不太对,建议使用Python的输入输出功能。
subprocess.Popen
:这个可以用来启动新进程。这个说法也不太对,建议使用
import
或者subprocess.Popen
。help
:这个可以用来获取帮助信息。