问题标签 [shlex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1721 浏览

python - posix=false 的 shlex.split 不起作用(远程搜索文件)

上面的脚本我在 Windows 上运行,它根本不起作用。我只想远程搜索文件“ga.db3”是否存在。请告诉我。

0 投票
2 回答
1275 浏览

python - Popen(shlex.split(command), shell=False, stdin=PIPE) error WindowsError: [Error 2] The system cannot find the file specified

我试图让一个 Popen 命令在带有 shell=False 的 Windows 上运行,而对于我的生活,我无法让它工作。iTMSTransporter 是一个命令行应用程序。这是我当前的代码:

这给了我错误:

我确定 progra~1 不是问题,因为它适用于 shell=True,并且还尝试了 Program Files,结果相同。有什么想法可以在 Windows 平台 Python 2.7 上运行吗?

0 投票
1 回答
659 浏览

python - Python - Popen(shlex.split(command), shell=False) - 不适用于 ffmpeg

我正在Popen(shlex.split(command)运行一个 ffmpeg 命令,该命令从 quicktime mov 文件中保存 wav 文件,同时还保存一个 ffmpeg 日志文件。如果我使用这个:

然后命令正确完成,但是如果我添加保存日志文件的行,那么它不再起作用,所以如果我使用:

然后它不再起作用。在命令行中使用任一命令,不使用 python,都可以正常工作。如果我只是使用:

然后一切正常,但我需要使用shell=False其他原因。

我只是不明白为什么它会通过添加“正确”的结束行来中断2> /Users/me/Documents/MOVS/lofFile.txt

0 投票
1 回答
3804 浏览

python - Python 3 向后兼容性(shlex.quote 与 pipe.quote)

我的一个项目使用shlex.quotepython 3.3以来可用。但这与移至 shlex 后不推荐使用shlex.quote的相同。pipes.quote

现在为了兼容性,我正在使用以下代码:

有没有更好的做法?

0 投票
1 回答
817 浏览

python - Python Popen shell=False 导致 OSError: [Errno 2] No such file or directory FFREPORT

我在 OSX 上的 python 2.7 中已经工作的 ffmpeg 命令的前面添加了一个 FFREPORT 命令,这是为了重定向报告日志文件,但出现错误并且无法弄清楚如何修复它。

这是命令:

这给了我错误:

更新:

我现在已将其更改为合并下面的答案,但又遇到了另一个问题。我需要日志文件的路径作为变量,所以我正在尝试:

但我收到以下错误:

更新:修复:

0 投票
0 回答
275 浏览

python - 在 Python 中使用 shlex 进行词法分析时如何处理多字符运算符?

我正在编写一个语言解析器/解释器,我想我可以使用 shlex 模块来生成令牌,但是在使用多字符运算符时遇到了问题,例如+=or **。shlex 模块会将它们作为两个独立的运算符来使用,这并不理想。

我想我会尝试将运算符字符添加到 shlex.wordchars,但这会导致没有空格的代码出现问题:

因此,我有了一个想法,当我连续有多个可能是有效运算符的令牌时,我可以手动从令牌重建运算符。例如,如果我有一个+标记后跟一个=,那么我会将它们连接起来形成一个 '+='。但是,此解决方案会在诸如x - -3. 它会被标记为x,--3,这也不是我想要的。

有什么方法可以简单地使用 shlex 模块来做我想做的事吗?还是我可能不得不自己编写一个标记器?

0 投票
1 回答
5827 浏览

python - 从 Python 运行 Perl 代码(输出到文件)

我正在尝试从 Python 运行 Perl 脚本。我知道如果在终端中运行 Perl 脚本,并且我希望将 Perl 脚本的输出写入我需要> results.txtperl myCode.pl. 这在终端中运行良好,但是当我尝试在 Python 中执行此操作时它不起作用。

这是代码:

尽管> results.txt它不输出到该文件,但它确实输出到命令行。

0 投票
2 回答
1876 浏览

python - 使用变量输入和文件输出作为来自 python 的参数调用 perl 脚本

我有一个可以从控制台执行的 perl 脚本,如下所示:

我想从我的 python 代码中执行这个脚本。我发现它subprocess.Popen可以用来连接到 perl,我可以用它传递我的论点。但是,我还想传递一个变量(通过拆分文本文件生成)来代替 input.txt。我尝试了以下方法,但它似乎不起作用,并在第 8 行给出了明显的 TypeError:

有没有其他解决方法?

编辑:这是文件 fulltext.txt 的示例。条目由一行分隔。

我想将它们分开并将每个条目块传递给 perl 脚本。所有文件都在同一个目录中。

0 投票
1 回答
113 浏览

python - 将 shlex 置于调试模式

我想看看shlex对于我正在尝试构建的东西是否是一个不错的选择,所以我想我会把它置于调试模式来玩弄它。只是,shlex 的构造函数有一个奇怪的事情:它设置self.debug0然后立即检查它是否为真。

我知道 Python 有一些强大的元编程特性,但我不知道它是如何工作的——即使我重写了构造函数,也没有编程方式可以在值的设置和它的使用之间进行切换。

是否应该有一种方法来输出if self.debug条件中的语句(如果是,如何输出?),它是一个错误,还是我没有考虑过第三种可能性?

0 投票
1 回答
8147 浏览

python - python, windows : 用 shlex 解析命令行

当您必须拆分命令行时,例如 call Popen,最佳实践似乎是

subprocess.Popen(shlex.split(cmd), ...

但RTFM

该类shlex使为类似于 Unix shell 的简单语法编写词法分析器变得容易...

那么,win32上的正确方法是什么?那么报价解析和 POSIX 与非 POSIX 模式呢?