我如何从包含regexp的python调用shell命令?

cur*_*ous 2 python shell

如何从python中调用包含regexp(即cat filename*)的shell命令.

我写:

pid = subprocess.Popen(["cat", filename + "*"])
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误

cat filename*没有这样的文件或目录.

我想强制shell将"*"视为正则表达式而不是字符串.有没有办法实现这个?

Kir*_*ser 6

使用底层shell扩展您的globs:

pid = subprocess.Popen(["cat",filename+"*"], shell=True)
Run Code Online (Sandbox Code Playgroud)

或者,glob.glob在运行命令之前使用扩展参数:

import glob
pid = subprocess.Popen(["cat"] + glob.glob(filename + "*"))
Run Code Online (Sandbox Code Playgroud)