IOError: [错误 13] 权限被拒绝:
我写了这段代码,目的是专门用来找到一堆.XML文件,并从这些文件中提取坐标。以下是我的代码:
from xml.etree import ElementTree as ET
import sys, string, os, arcgisscripting
gp = arcgisscripting.create(9.3)
workspace = "D:/J040083"
gp.workspace = workspace
for root, dirs, filenames in os.walk(workspace): # returms root, dirs, and files
for filename in filenames:
filename_split = os.path.splitext(filename) # filename and extensionname (extension in [1])
filename_zero = filename_split[0]
extension = str.upper(filename_split[1])
try:
first_2_letters = str.upper(filename_zero[0] + filename_zero[1])
except:
first_2_letters = "XX"
if first_2_letters == "LI" and extension == ".XML":
tree = ET.parse(workspace)
print tree.find('//{http://www.opengis.net/gml}lowerCorner').text
print tree.find('//{http://www.opengis.net/gml}upperCorner').text
我遇到了一个错误:
Message File Name Line Position
Traceback
<module> D:\J040083\TXT_EXTRACTION.py 32
parse C:\Python25\Lib\xml\etree\ElementTree.py 862
parse C:\Python25\Lib\xml\etree\ElementTree.py 579
IOError: [Errno 13] Permission denied: 'D:/J040083'
我肯定可以访问这个文件夹!我还试着新建了空文件夹,并只放了一个.XML文件,但还是出现了同样的错误!有没有人知道出了什么问题?
2 个回答
0
也许你只需要用 \
来写文件路径,而不是用 /
:
workspace = "D:\\J040083"
或者,可以用原始字符串,这样就不需要用反斜杠来转义:
workspace = r"D:\J040083"
11
你需要把这一行改成
tree = ET.parse(workspace)
改成
tree = ET.parse(filename)
因为workspace是一个文件夹,而parse方法需要的是一个文件名。