CMD中同时执行.py与.txt文件的时机、原因及实例解析
为什么
python textGame.py gameConfiguration.txt能关联两个文件运行? 别担心,这其实不是“同时执行两个文件”,而是Python解释器运行你的脚本,并把那个txt文件作为命令行参数传给脚本——所有逻辑都是你的textGame.py自己处理的,系统只是帮你把文件路径递过去而已。
拆解命令的本质
咱们把这条命令拆成三部分看:
python:调用Python解释器,告诉系统“我要运行一个Python脚本”textGame.py:指定要运行的脚本文件gameConfiguration.txt:这是传给脚本的命令行参数——本质就是一个字符串,内容是这个txt文件的路径(如果和脚本在同目录下就是文件名)
用实例看脚本怎么用这个参数
我写个简化版的textGame.py,模拟它怎么读取这个配置文件:
# textGame.py 简化示例 import sys # sys.argv是Python脚本接收的命令行参数列表,第一个元素是脚本自己的路径 if len(sys.argv) >= 2: # 取第二个元素,就是你传入的gameConfiguration.txt路径 config_path = sys.argv[1] # 脚本自己打开并读取这个txt文件的内容 with open(config_path, 'r', encoding='utf-8') as f: # 假设配置文件里存了初始房间信息 start_room = f.read().strip() # 然后用配置内容输出欢迎信息 print(f"Welcome to the house game! You are in the {start_room}") else: print("Error: 请传入游戏配置文件路径!")
如果gameConfiguration.txt里只写了Hall,那运行python textGame.py gameConfiguration.txt就会输出你看到的那句欢迎语——所有关联逻辑都是脚本自己实现的,系统只是帮你传递了文件路径。
什么时候需要这么做?
这种把配置和代码分离的方式很常用,原因有这些:
- 灵活修改配置:比如你想把初始房间改成
Kitchen,直接改txt文件就行,不用动Python代码,新手也能轻松调整游戏内容 - 多场景复用脚本:比如你有
easy_mode.txt、hard_mode.txt两个配置文件,换个参数就能运行不同难度的游戏,不用写多个脚本 - 符合命令行工具的通用设计:很多成熟的命令行工具(比如git、ffmpeg)都用这种“脚本+参数”的模式,方便自动化或者批量操作
澄清误区
你可能以为是系统自动关联了py和txt,但实际上:
- 系统根本不知道这个txt是干嘛的,它只是把路径字符串传给Python脚本
- 只有当脚本里写了读取这个参数、打开文件的代码时,这个txt才会被用到;如果脚本没处理这个参数,那运行命令时传了txt也没用
内容的提问来源于stack exchange,提问作者Nitikesh Dubey
相关产品推荐
相关产品推荐

