我收到此错误:
source = open(source,“rb”) IOError:[Errno 2]没有这样的文件或目录:'XXX.xml'
我知道该文件存在于目录中,但它找不到它。我相信我需要使用我的for循环中的“dirs”吗?
jdata = json.load(open(json_path))
if os.path.isdir(osWalkpath):
for root, dirs, files in os.walk(path):
print root, dirs, files
for key, value in jdata.iteritems():
for name in files:
try:
dirs.remove('.svn')
except ValueError:
pass
with open(os.path.join(root, name)) as fle:
content = fle.read()
FindName(content, key, name, value) # <--- It complains here
def FindName(content, key, name, value):
if name.endswith('.arxml') and re.search(Wordboundry(key), content):
print "Name", key, "was found in", name, "\n"
OverrideXML(key, value, name)
似乎当我给出文件所在位置的完整路径时,它会找到它,但是当我只提供路径的一部分时,它将无法找到它。
例如:
"C:\MyPath\XML\Dir1\ #Full path where the file exist
"C:\MyPath\XML\ #Not the full path (but file exist in the subdir "Dir1) and gives error since it can't find the XML
一些输出:
名称XYZ在XXX.xml中找到&lt; ---与wtf一样,它找到了文件
答案 0 :(得分:1)
您必须才能提供文件的完整路径,否则操作系统将搜索当前目录中的文件。
如果您不想提供完整路径,请更改当前的工作目录(os.chdir
)。但请记住,您正在更改工作目录,如果不再更改它,您将无法访问预览目录中的文件。
我强烈建议您通知文件的完整路径。
答案 1 :(得分:0)
解决方案
xx = os.path.relpath(os.path.join(root, name))
FindName(content, key, xx, value)