执行 python(交互模式)时是否可以自动加载脚本?
我的意思是像 PowerShell 中的脚本$Profile
,当 PowerShell 执行时,脚本会自动加载。
Python 脚本示例:
# autorun.py
import os
def cls():
os.system("CLS")
def pause():
os.system("pause")
#input("Press Enter to continue...")
如何让python启动时自动加载脚本?
当我用命令py
或调用 Python 时Python
。
答案1
是的,但是启动脚本没有默认路径——您必须PYTHONSTARTUP
先手动设置环境变量,指向您想要运行的脚本。
C:\> set PYTHONSTARTUP=%APPDATA%\pythonrc.py
C:\> setx PYTHONSTARTUP "%PYTHONSTARTUP%"
它会仅有的在启动交互式会话时加载,而不是在运行 .py 脚本时加载。脚本需要明确导入所需的模块。
(为了使脚本更容易,您可以将自定义模块文件放在与脚本文件相同的目录中,也可以设置PYTHONPATH
为包含自定义模块的目录 - 无论哪种方式,您都可以将所有便利函数放入“mylib.py”之类的目录中,然后能够from mylib import cls, pause, etc, etc
。)
答案2
如果你确实需要一个“初始化 Python”函数(请注意,未以“特殊方式”记录的更改将不会保留),用 python 编写它并在你的“autoexec.bat”中调用它(在任务计划程序中在 eventID 7001(登录)上运行它)或通过任何其他方式。
否则:
为 Python 创建您自己的“基本函数”,然后
import basicfuncs as bf
在您创建的任何 Python 代码中执行...,在您希望使用它们的地方。
bf.cls()
该文件中的“def cls():”将可供您在后续代码中使用。
例子:
$ python
...
>>> import primefactors as pf
>>> pf.main(['','1234'])
2x617
>>>
在我的 primefactors.py 中,存在main
一个, 它打印def main(argv):
2x617
(1234 的实际质因数)
使用显示的参数执行时(标准 sys.argv 的脚本或提示本地版本)。
此外:
import os;
os.system('');
def cls():
print('\x1b[H\x1b[J',end='') # Cursor Home (top left)+Clear_to_end_of_screen
前两行将导致 WINDOWS 实际初始化类似于ncurses
(https://en.wikipedia.org/wiki/Ncurses)这将允许所有https://en.wikipedia.org/wiki/ANSI_escape_code其中,在实践中\x1b[
等于“CSI” 。\x9B
CSI:控制序列引入器