问题标签 [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 回答
88 浏览

python - distutils.util.split_quoted 和 shlex.split 有什么区别

python 标准库提供distutils.util.split_quotedshlex.split.

是否有任何情况会distutils.util.split_quoted(s)给出不同的结果shlex.split(s)

0 投票
1 回答
1215 浏览

python - shlex.split() returning whole command as a single string

shlex.split() is not giving the proper output on the input string.

In python interpreter, storing the input value in a variable produces the expected output.

But if i execute via a script, shlex.split() output is incorrect and input string did not split on whitespace.

Am i missing something here?

0 投票
1 回答
431 浏览

python - 如何在python中转义命令行的参数?

我正在编写一个需要使用subprocess模块调用外部命令的脚本。问题是我需要将用户提供的文件传递给命令,因此它看起来类似于:

我必须运行命令shell=True才能使其工作,这就是为什么我将命令作为字符串而不是列表传递。

问题是有人可能会传递一个名为: 的文件somefile && rm -rf ~,这是一个有效的文件名,原因很奇怪(至少在 windows 上。不知道 mac/linux),然后发生了不好的事情。

因此,我需要在将用户输入传递给 shell 之前对其进行转义。我想为此使用内置shlex.quote函数,所以通过上面的示例,我得到:'somefile && rm -rf ~'并且命令变为:command arg1 arg2 'somefile && rm -rf ~cmd'它应该在 unix 系统上工作。问题是这种转义在带有命令提示符的 Windows 上不起作用,因此我的脚本在我的 Windows 机器上失败。

是否有内置或第三方函数/库可以为所有平台正确转义命令行参数,或者至少对于 Windows(因为shlex.quote适用于 unix)?

我正在 Windows 上开发,所以我需要这个脚本才能在这个平台上工作,我不认为这样的东西"{userfile}"就足够好了。

python 3的任何解决方案将不胜感激。

0 投票
2 回答
3155 浏览

python - Python shlex 没有右引号错误——如何处理?

这个简单的代码:

会导致ValueError: No closing quotation错误:

我认为'是错误的。我该如何处理?我从文件中读取了这一行,所以我不能只\在每个引用或其他内容之前输入。

0 投票
1 回答
80 浏览

python - Python子进程:返回值不正确

我正在编写一个使用子进程的 Python 模块,以查看进程是否已运行并获取其 PID。到目前为止,我已经完成了运行进程的部分。

进程清楚地运行,但是这段代码有问题,所以它抛出了我的自定义异常 ReturnFalseValue。

这是我对该方法的小单元测试...

正如你所看到的,它打印了 HelloWorld,但由于某种原因,它认为有一个错误,好像 echo 没有返回 0 但确实有效。

0 投票
1 回答
127 浏览

python - subprocess.run“无结束引号”的格式化字符串

我有这个命令要运行:

其格式为:

并跑进:

是什么导致了错误ValueError: No closing quotation

0 投票
1 回答
46 浏览

python - 如何从python子进程中检索输出

我正在使用 Python subprocess 函数,因为我想实时读取命令的输出流。

但我希望在流程结束后,所有作为流输出写入的内容都完全返回给对象。

实际结果:

我只获得已完成过程的代码状态。标准输出为空,但应包含已处理命令的所有输出。

我使用 Python 3.7.4

我不知道该怎么办。

0 投票
1 回答
46 浏览

python-3.x - 如何拆分多字串但在某些单词组合处转义拆分?

假设我有一个字符串:

有无 shlex 怎么办?

我试图做的方式是:

0 投票
1 回答
103 浏览

python - 如何使用 python 获取 wlan 设备名称?

我只想要带有 python 的 linux 系统上的 wlan 设备名称。我可以使用 shell 脚本获取设备名称:

所以我想在 python 中使用这个subprocess

但我只得到None输出。如果可能的话,我更喜欢使用subprocess.run(). 所以我换成Popenrun. 但后来我收到错误消息AttributeError: 'bytes' object has no attribute 'fileno'

0 投票
0 回答
275 浏览

python - 我如何从终端启动 youtube 全屏

我正在尝试通过终端调用运行视频以获得全屏和良好的分辨率,但我不知道如何设置参数。

我在linux上,我在终端上这样做:

但是:1-它没有运行,它只是在等待启动 2-它不是全屏 3-如何选择视频质量 4-是否可以将音频音量设置为 100%

我想避免硒,但如果有必要,我应该写什么?