python终端运行脚本时传参

终端运行:

python test01.py 19 18 17
 

程序test01.py
​​​​​
import sys

print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])
print(sys.argv[3])

终端结果:

test01.py
19
18
17

 

 

### Python 中 `sys.argv` 的传参示例 在 Python 脚本中,可以利用 `sys.argv` 来获取命令参数。以下是基于提供的引用内容以及专业知识的一个完整示例。 #### 示例代码 下面的代码展示了如何通过 `sys.argv` 接收并解析命令参数: ```python import sys def main(): # 判断是否有足够的参数 if len(sys.argv) < 2: print("用法: script.py 参数1 参数2 ...") return # 遍历所有参数 for i, arg in enumerate(sys.argv): print(f"第 {i} 个参数: {arg}") if __name__ == "__main__": main() ``` 当运行脚本,可以从命令行传递多个参数给它。例如,在终端执行以下命令: ```bash python script.py hello world 123 ``` 输出将是: ``` 第 0 个参数: script.py 第 1 个参数: hello 第 2 个参数: world 第 3 个参数: 123 ``` 这里需要注意的是,`sys.argv[0]` 总是指向当前脚本的名字[^4]。 --- #### 更复杂的手动参数解析 如果需要支持带标志或选项的参数,则可以通过手动解析的方式实现。以下是一个更复杂的例子,演示了如何处理 `-v` 和 `-f` 这样的标志和选项: ```python import sys def main(): verbose = False filename = None # 手动解析标志和选项 if "-v" in sys.argv: verbose = True if "-f" in sys.argv: file_index = sys.argv.index("-f") + 1 if file_index < len(sys.argv): filename = sys.argv[file_index] if filename: print(f"处理文件: {filename}") if verbose: print("详细模式已启用") if __name__ == "__main__": main() ``` 假设保存上述代码到名为 `example.py` 的文件中,并在终端运行如下命令: ```bash python example.py -v -f data.txt ``` 输出将会是: ``` 处理文件: data.txt 详细模式已启用 ``` 这种手动解析方式适用于简单的场景,但如果涉及更多复杂的参数逻辑,建议使用 `argparse` 模块[^1]。 --- ### 命令参数顺序的重要性 在某些情况下,命令参数的顺序可能会影响程序的行为。例如,如果某个参数依赖于前一个参数的存在与否,则顺序就显得尤为重要[^2]。然而,在大多数简单场景下,只要按照预期定义好参数的位置即可正常工作。 --- ### 使用场景举例 `sys.argv` 是批处理任务的理想工具之一。比如在一个批量转换图片格式的任务中,可以这样调用脚本来指定源目录和目标目录: ```bash python convert_images.py --source /path/to/source --target /path/to/target ``` 尽管这里的示例较为基础,但它足以满足许多日常需求[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值