Python:无法使用os.startfile启动文件

Python:无法使用os.startfile启动文件,python,Python,Python 2.7 我想用我的操作系统(Win 7)为给定文件类型设置的默认应用程序打开一个文件。我使用的是os.startfile方法 这个问题和字符编码有关,我已经花了几个小时,但还没有找到解决办法 # -*- coding: utf-8 -*- import xml.etree.cElementTree as etree import os class Session: 'Session' def __init__(self, xmlfile):

Python 2.7

我想用我的操作系统(Win 7)为给定文件类型设置的默认应用程序打开一个文件。我使用的是os.startfile方法

这个问题和字符编码有关,我已经花了几个小时,但还没有找到解决办法

# -*- coding: utf-8 -*-
import xml.etree.cElementTree as etree
import os

class Session:
        'Session'
    def __init__(self, xmlfile):
        parser = etree.XMLParser(encoding="utf-8")
        self.tree = etree.parse(xmlfile, parser=parser)
        self.root = self.tree.getroot()

    def get_documents(self):
        return self.root.findall('document')

session = Session('sessionutf8.xml')


for doc in session.get_documents():
    print doc.text.encode('utf-8') 
    os.startfile(doc.text.encode('iso 8859-1'))
输入XML:

<?xml version="1.0" encoding="utf-8"?>
<session>
    <name> Statistikk </name>
    <document>
        C:\Users\Jens\Documents\Vår 2014\TMA4245 Statistikk\Probability &amp;     Statistics for Engineers &amp; Scientists (9th Edition) - Walpole.pdf
    </document>
这段代码按预期在AdobeReader中打开pdf文档(好吧..我现在写了一行代码后并没有真正的期望,主要是希望和祈祷)

所以我在encoding()和XML文件中尝试了ISO 8859-1、UTF-8的各种组合。我一直在努力读这些东西,但我还是很困惑

请注意,这是我有史以来的第一个Python程序,我已经用Java编程了几年。但这里可能有我不应该做的事情,所以请随意提出实现我目标的其他方法。也就是说,在我的操作系统中设置为默认值的任何应用程序中打开一个文件,然后返回到我的程序。不需要提及新流程或类似的内容。只需打开文档并继续。

从您的错误:

cannot find the file specified: '\n\t\tC:\\Users...
请注意\n\t\t。看起来,从xml中提取路径名时,路径名前后的空格将被保留。你应该把它去掉

os.startfile(doc.text.strip().encode('iso 8859-1'))
正如您在这里看到的,您的变量中有尾随空格字符——您可以使用删除这些字符。它们来自于在节点中使用换行符和缩进这一事实

os.startfile(doc.text.strip())

错误消息直接说明了问题,您的文件名前面有空格字符:
”\n\t\tC:\\Users\\Jens\\Documents\\V\xe5r 2014…
我真希望昨晚问这个问题,这样可以节省我很多时间。8个小字符修复了问题…:)非常感谢。是的,这就是问题所在。我只是认为这不是问题,所以我在别处找…谢谢
os.startfile(doc.text.strip().encode('iso 8859-1'))
WindowsError: [Error 2] The system cannot find the file specified: '\n\t\tC:\\Users\\Jens\\Documents\\V\xe5r 2014\\TMA4245 Statistikk\\Probability & Statistics for Engineers & Scientists (9th Edition) - Walpole.pdf\n\t'
os.startfile(doc.text.strip())