我想删除所有文件和目录除了其中一些文件和目录使用
`subprocess.call(['rm','-r','!(new_models|creat_model.py|my_mos.tit)'])`
Run Code Online (Sandbox Code Playgroud)
但它会回馈信息
rm:无法删除`!(new_models | creat_model.py | my_mos.tit)':没有这样的文件或目录
我怎样才能解决这个问题?谢谢
如果rm在命令行上使用该命令!(…|…|…),则shell 将模式扩展为除调用之前模式中的模式名称之外的所有文件名rm.您的代码rm直接调用,因此rm将shell模式作为文件名获取,并尝试删除具有该名称的文件.
您必须添加shell=True到subprocess.call()Python 的参数列表或实际编码,而不是调用外部命令.缺点:那不止一条线.好处:它可以独立于外部shell和系统相关的外部程序完成.
| 归档时间: |
|
| 查看次数: |
4282 次 |
| 最近记录: |