小编典典

如何使用python在其默认程序中打开文件

python

我想在python 3.5的默认应用程序中打开文件,特别是在记事本中打开“ screen.txt”。

我已经搜索了互联网,并找到os.startfile(path)了大多数答案。我用文件的路径尝试了此操作,os.startfile(C:\[directoriesn stuff]\screen.txt)但返回了一个错误,提示“行继续符后出现意外字符”。我尝试了没有文件路径的尝试,只是文件名,但仍然无法正常工作。

这个错误是什么意思?我从未见过。

请提供打开有效的.txt文件的解决方案。

编辑:我在受限(学校)计算机上的Windows 7上。


阅读 186

收藏
2021-01-20

共1个答案

小编典典

很难从您的问题上确定当前的状况,但是我敢打赌,您的问题是 反斜线

[编辑添加:]或者实际上也许更简单一些。您是否在路径名两边加上了引号?如果没有,那肯定是行不通的-但是一旦您做得到,您将发现您需要我在下面写的其余内容。

在Windows文件系统中,反斜杠\是分隔目录的标准方法。

在Python字符串文字中,反斜杠\用于将东西放入否则很难输入的字符串中。例如,如果您正在编写单引号字符串,并且想要在其中使用单引号,则可以执行以下操作:'don\'t'。或者,如果您想要换行符,则可以执行以下操作:'First line.\nSecond line.'

因此,如果您采用Windows路径名并将其插入Python,如下所示:

os.startfile('C:\foo\bar\baz')

那么实际传递给的字符串os.startfile将不包含那些反斜杠;它将包含一个换页字符(来自\f)和两个退格字符(来自\bs),这根本不是您想要的。

您可以通过三种方式处理此问题。

  • 您可以使用正斜杠代替反斜杠。尽管Windows在其用户界面中更喜欢反斜杠,但是正斜杠也可以工作,并且它们在Python字符串文字中没有特殊含义。

  • 您可以“转义”反斜杠:连续两个反斜杠表示实际的反斜杠。 os.startfile('C:\\foo\\bar\\baz')

  • 您可以使用“原始字符串文字”。r在开始的单引号或双引号之前放置一个。这将使反斜杠不会被特别解释。os.startfile(r'C:\foo\bar\baz')

最后一个也许是最好的, 除了 一个令人讨厌的怪癖:反斜杠引号在原始字符串文字中仍然很特殊,因此您仍然可以说'don\'t',这意味着您不能以反斜杠
结束 原始字符串文字。

2021-01-20