簡體   English   中英

IOError:[Errno 13]權限被拒絕:

[英]IOError: [Errno 13] Permission denied:

我已經構建了這個代碼來專門識別一堆.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文件,但我得到同樣的錯誤! 有誰知道出了什么問題?

你需要改變這條線

tree = ET.parse(workspace)

tree = ET.parse(filename)

因為workspace是一個目錄,而parse方法采用文件名。

也許你只需要用\\而不是/來編寫文件路徑:

workspace = "D:\\J040083"

或者,沒有反斜杠作為原始字符串轉義:

workspace = r"D:\J040083"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM