python - 将路径参数/变量从批处理文件传递给 python,sys.argv[] 只给出最后一个目录而不是整个字符串
问题描述
我scan
为 Windows 终端创建了一个自定义命令。我的目标是自动将我的扫描移动到某个目录。我将对我的路径进行硬编码,但如果我想将我的扫描移动到不同的目录,我已经包含了一个参数 2(参数 1 是“开始”执行)。我的批处理文件将路径作为字符串传递给我的 python 脚本。
我知道这一点,因为当我写
scan start "C:/path/to/target/dir/"
进入我的 Windows 终端,它会吐出以下内容来运行我的脚本。
python "C:\Users\MY USERNAME\my_scripts\scan.py" start C:/path/to/target/dir/
不幸的是,我无法使用以下代码“读取”整个路径:
print(Path(sys.argv[2]).stem)
在这种情况下,结果是dir
print(Path(sys.argv[0]).stem)
=scan
print(Path(sys.argv[1]).stem)
=start
print(Path(sys.argv[2]).stem)
=dir
为什么我没有得到整个路径,我如何得到它?我想要这样的东西:
print(Path(sys.argv[2]).stem)
=C:/path/to/target/dir/
解决方案
您确实正在阅读整个路径。但是你正在阻止它,缩短为 dir。使用以下
print(Path(sys.argv[1]))
推荐阅读
- linux - 将 bash 脚本上传到 MAAS 部署的 Ubuntu 机器上
- git - Git 已经安装在 `usr/local/Cellar/git` 下,接下来呢?
- python - 如何使用 joblib 或 pickle 下载经过训练的 BeRT 模型?
- azure - Azure DataFactory 在 Azure Function body 活动中使用变量
- git - Git推送到新的远程存储库不返回任何内容
- java - 如何将 vault.xml (Ansible) 中的解密值分配给配置类的变量或 java 中的 application.yaml
- sql - 无法连接 Spring Boot 和 MS SQL Server 2012
- php - 我如何为 laravel 递归关系运行循环
- python - 基于 Index 的 Pandas 未展开系列
- r - 从列表中检查许多文件中的条件 - R