使用sublime text 3在python 3中打开xml文件时出错

时间:2016-05-02 03:10:06

标签: python xml python-3.x sqlite

Traceback (most recent call last):
  File "C:\Users\diamo\Documents\Sublime Text Saves\ItunesDatabase.py", line 50, in <module>
    stuff = ET.parse(fname)
  File "C:\Users\diamo\AppData\Local\Programs\Python\Python35-32\lib\xml\etree\ElementTree.py", line 1183, in parse
    tree.parse(source, parser)
  File "C:\Users\diamo\AppData\Local\Programs\Python\Python35-32\lib\xml\etree\ElementTree.py", line 583, in parse
    source = open(source, "rb")
OSError: [Errno 22] Invalid argument: '\u202aC:/Users/diamo/Desktop/Library.xml'

我不明白为什么会这样。

以下是代码的基本部分:

import sqlite3
import xml.etree.ElementTree as ET

conn = sqlite3.connect('trackdb.sqlite')
cur = conn.cursor()

fname = '‪C:/Users/diamo/Desktop/Library.xml'  #input('Music Data Filename: ')
if (len(fname) < 1): fname = 'C:/Users/diamo/Desktop/Library.xml'

stuff = ET.parse(fname)

请帮助。

2 个答案:

答案 0 :(得分:1)

我找到了答案。我不知道它是怎么到达那里的,但是当我在一片一片地移动我的眨眼垂直条时,我发现在所有的单词之前我必须按两次使其移动,这意味着有一个角色在一开始没有占用任何空间。我删除了它,现在我的程序正在运行。

答案 1 :(得分:0)

看起来您的文件名前面有一个unicode字符\u202a,这会使open方法中的parse命令混乱。您可能在存储/检索文件名时遇到问题。

看起来该字符指定这是一个从左到右的字符串(与从右到左的文本,如阿拉伯语)。我不能说我知道为什么这会被插入你的字符串中。