我想在Python3.5的默认应用程序中打开一个文件,特别是记事本中的“screen.txt”。
我在网上搜索了一下,在大多数答案上都找到了os.startfile(path)
。我用文件的路径os.startfile(C:\[directories n stuff]\screen.txt)
尝试了这个方法,但是它返回了一个错误,说“一行接一行的连续字符意外”。我试过没有文件路径,只是文件名,但仍然没有成功。
这个错误是什么意思?我以前从没见过。
请提供打开有效的.txt文件的解决方案。
编辑:我在一台受限制的(学校)计算机上使用Windows7。
Tags:
使用默认程序打开文件的推荐方法是
os.startfile
。您可以使用os.system
或subprocess
进行一些更手动的操作,但是:或者
当然,这不会跨平台工作,但对于您的用例来说可能已经足够了。
从你现在的问题很难确定,但我敢打赌你的问题是反斜杠。
[编辑添加:]或者实际上可能更简单。你在你的路径名周围加上引号了吗?如果不行,那肯定不行——但一旦你这样做了,你就会发现你需要我在下面写的其他东西。
在Windows文件系统中,反斜杠
\
是分隔目录的标准方式。在Python字符串文本中,反斜杠
\
用于将原本难以输入的内容放入字符串中。例如,如果您正在编写一个单引号字符串,并且希望其中包含一个单引号,则可以执行以下操作:'don\'t'
。或者如果需要换行符,可以这样做:'First line.\nSecond line.'
因此,如果您采用Windows路径名并将其插入Python,如下所示:
然后,实际传递给
os.startfile
的字符串将不包含这些反斜杠;它将包含一个表单馈送字符(来自\f
)和两个退格字符(来自\b
),这根本不是您想要的。你可以用三种方法来处理这个问题。
可以使用正斜杠而不是反斜杠。尽管Windows在其用户界面中更喜欢反斜杠,但正斜杠也可以工作,而且它们在Python字符串文本中没有特殊意义。
您可以“转义”反斜杠:一行中的两个反斜杠表示实际的反斜杠。
os.startfile('C:\\foo\\bar\\baz')
您可以使用“原始字符串文字”。在开头的单引号或双引号前加上
r
。这将使反斜杠不被特别解释。os.startfile(r'C:\foo\bar\baz')
最后一个可能是最好的,除了一个恼人的怪癖:反斜杠引号在原始字符串文本中仍然是特殊的,因此您仍然可以说
'don\'t'
,这意味着您不能用反斜杠来结束原始字符串文本。例如,我在驱动器D上创建了文件
"test file.txt"
:所以文件路径是'D:/test file.txt'
现在,我可以使用与该脚本关联的程序打开它:相关问题 更多 >
编程相关推荐