Python 如何避免使用path变量注入Shell并等待命令存在?

Python 如何避免使用path变量注入Shell并等待命令存在?,python,shell,code-injection,Python,Shell,Code Injection,我需要读取命令的出口(然后我必须以同步方式等待它): 我的问题是这样的路径: ~/testing/;xterm;/blabla 如何从用户处清除该字符串(允许其语言中使用特殊字符) 我在PHP中找到了escapeshellcmd,但在Python中没有找到任何内容 附言:它不是这个的复制品: 因为它是完整的路径 我没有找到解决办法 提前谢谢 =======传递列表而不是字符串。和removeshell=True,使命令不由shell运行。(您需要自己使用展开~) 旁注:如果要获取文件名列表

我需要读取命令的出口(然后我必须以同步方式等待它):

我的问题是这样的路径:

~/testing/;xterm;/blabla
如何从用户处清除该字符串(允许其语言中使用特殊字符)

我在PHP中找到了escapeshellcmd,但在Python中没有找到任何内容

附言:它不是这个的复制品:

  • 因为它是完整的路径
  • 我没有找到解决办法
提前谢谢


=======

传递列表而不是字符串。和remove
shell=True
,使命令不由shell运行。(您需要自己使用展开
~

旁注:如果要获取文件名列表,最好使用:


谢谢,但是我发现了这个问题:如果没有shell=True,我就无法退出命令,文件列表总是空的。@costales,这很奇怪。你能试试这个吗
filelist=os.listdir(os.path.join(os.path.expanduser(“~”、“testing”、“;xterm;”、“blablabla”))
除非您想忽略非零退出,否则我将使用check_调用status@falsetru是的,这就是我的意思。@falsetru:非常感谢!操作系统库正在解决我的问题:)
~/testing/;xterm;/blabla
import subprocess
subprocess.call('ls ~/testing/;xterm;/blabla', shell=True) # This will launch xterm
import os
import subprocess

subprocess.call(['ls', os.path.expanduser('~') + '/testing/;xterm;/blabla'])
filelist = os.listdir(os.path.expanduser('~') + '/testing/;xterm;/blabla')