(我已阅读不同的帖子和资源,不包括“The Absolute Minimum <...>”,但仍然不明白如何解决我的问题)
我想将我的目录(及其子目录)中的所有文件都提供给xmllint
工具。有些文件名称中包含中文字符。
#!/usr/bin/env python3
import os, sys
import subprocess
fn_folder = "d:/test"
fn_tool_path = 'd:/libxml2-2.9.3-win32-x86_64/bin/xmllint.exe '
for root, subFolders, files in os.walk(fn_folder):
for eachfile in files:
fullname = os.path.join(root,eachfile)
full_cmd = fn_tool_path + '--format ' + fullname
subprocess.Popen(full_cmd)
例如,如果在d:\test
文件夹中我有2个文件:test1.xml和test2山.xml('2'后面的中文字符),那么第一个将被正确处理,而第二个我'得到warning: failed to load external entity "file:/d:/test/test2%3F.xml"
- 即“错误”字符在作为参数传递之前被转义。怎么避免这个?