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

发布于 2021-01-29 15:04:31

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

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

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

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

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

关注者
0
被浏览
77
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

    在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',这意味着您不能以反斜杠
    结束 原始字符串文字。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看