【问题标题】:Python: getopt, batch files, and paths with spacesPython:getopt、批处理文件和带空格的路径
【发布时间】:2021-08-16 02:08:12
【问题描述】:

我正在使用 getopt 来解析选项和参数。 我编写了一个批处理文件来调用 python 脚本,这样我就不必一遍又一遍地键入相同的命令。

当我打印出参数列表时,路径被分割成空格,每个都被单独解析。

路径用双引号括起来,但我不确定问题出在哪里。是批处理文件,还是getopt不把它当作一个字符串?

如果是这样,我可以使用哪些替代方法来正确解析选项和参数(尤其是带有空格的路径)?

编辑:nvm,发现问题。我在批处理文件中的循环变量周围加上了双引号(即:“%%X”)。它已经有双引号,所以当我用自己的双引号时,路径本身不再是单个字符串 =(

【问题讨论】:

  • getopt 已弃用。对于 2.6 及更高版本,您应该使用 optparse 或更新的 argparse
  • 我要补充一点,optparse/argparse 非常易于使用且功能强大。

标签: python batch-file


【解决方案1】:

我们需要查看代码以确定,但请确保您引用参数 everywhere 而不仅仅是在命令行上。

命令行...

$script.sh "/my/path with/spaces"

Bash 脚本...

#!/bin/bash
python /path/to/script "$1"

【讨论】:

  • 由于这是一个批处理文件,我相信我已经引用了所有内容,因为它是从命令行直接传递到脚本的。
  • @Keikoku:因为它不起作用,有证据表明您可能没有引用所有内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-29
  • 1970-01-01
  • 2021-03-31
  • 2019-10-31
  • 2010-12-23
相关资源
最近更新 更多