我想在python 3.5的默认应用程序中打开文件,特别是在记事本中打开“ screen.txt”。
我已经搜索了互联网,并找到os.startfile(path)
了大多数答案。我用文件的路径尝试了此操作,os.startfile(C:\[directories n stuff]\screen.txt)
但返回了一个错误,提示“行继续符后出现意外字符”。我尝试了没有文件路径的尝试,只是文件名,但仍然无法正常工作。
这个错误是什么意思?我从未见过。
请提供打开有效的.txt文件的解决方案。
编辑:我在受限(学校)计算机上的Windows 7上。
很难从您的问题上确定当前的状况,但是我敢打赌,您的问题是 反斜线 。
[编辑添加:]或者实际上也许更简单一些。您是否在路径名两边加上了引号?如果没有,那肯定是行不通的-但是一旦您做得到,您将发现您需要我在下面写的其余内容。
在Windows文件系统中,反斜杠\
是分隔目录的标准方法。
在Python字符串文字中,反斜杠\
用于将东西放入否则很难输入的字符串中。例如,如果您正在编写单引号字符串,并且想要在其中使用单引号,则可以执行以下操作:'don\'t'
。或者,如果您想要换行符,则可以执行以下操作:'First line.\nSecond line.'
因此,如果您采用Windows路径名并将其插入Python,如下所示:
os.startfile('C:\foo\bar\baz')
那么实际传递给的字符串os.startfile
将不包含那些反斜杠;它将包含一个换页字符(来自\f
)和两个退格字符(来自\b
s),这根本不是您想要的。
您可以通过三种方式处理此问题。
您可以使用正斜杠代替反斜杠。尽管Windows在其用户界面中更喜欢反斜杠,但是正斜杠也可以工作,并且它们在Python字符串文字中没有特殊含义。
您可以“转义”反斜杠:连续两个反斜杠表示实际的反斜杠。 os.startfile('C:\\foo\\bar\\baz')
您可以使用“原始字符串文字”。r
在开始的单引号或双引号之前放置一个。这将使反斜杠不会被特别解释。os.startfile(r'C:\foo\bar\baz')
最后一个也许是最好的, 除了 一个令人讨厌的怪癖:反斜杠引号在原始字符串文字中仍然很特殊,因此您仍然可以说'don\'t'
,这意味着您不能以反斜杠
结束 原始字符串文字。
问题内容: 我想为用户提供他要编辑文件的任何选项,如何使用特定文件类型的默认程序打开文件?我需要它与Windows和Linux一起使用,但是Mac选项也很棒。 问题答案: 正如PSkocik所说,首先检测平台并获取命令行: 第二,执行命令行,然后输入路径
问题内容: 我的程序成功创建并填充了Excel(.xls)文件。创建完成后,我希望在系统的默认程序(以Excel为例)中打开新文件。我该如何实现? 对于我想在记事本中打开txt文件的旧程序,我使用了以下命令: 当我尝试将此代码用于Excel文件时,出现以下错误: 有什么建议吗? 问题答案: 尝试使用Desktop.open()而不是Desktop.edit(): 如果Desktop.open()不
问题内容: 如何使用Java中的默认关联程序打开文件?(例如电影文件) 问题答案: 你可以使用Desktop.getDesktop().open(File file)。 似乎无法使用java.awt.Desktop,必须区分以下操作系统:Windows: Linux: 苹果电脑: HTH。显然,这不是便携式的…
问题内容: 我想知道如何根据文件扩展名在记事本和图片查看器等程序中打开文件。我在Windows上使用Python 3.3。 我已经做过一些研究,人们提到了一个名为的模块,但是当我尝试导入该模块时,我收到一个ImportError。 这是我到目前为止的内容: 我还将拥有需要在记事本中打开的HTML和JSON文件。 问题答案: 使用此命令可使用默认程序打开任何文件: 如果您确实想使用某个程序,例如记事
问题内容: 我的Java Swing应用程序生成一个HTML文件,在生成和保存该文件时,我想用默认的浏览器将其打开。我怎样才能做到这一点? 问题答案: 如果您使用的是Java 6,请使用Desktop.open()。它允许您使用默认应用程序打开任何与系统上的文件类型相关联的文件。
问题内容: 我需要能够使用Windows和Mac OS中的默认应用程序打开文档。基本上,我想做的事情与您在资源管理器或Finder中双击文档图标时发生的事情相同。用Python做到这一点的最佳方法是什么? 问题答案: 在和中都使用Python中的默认OS应用程序打开文档并且是为X和Windows命令解释器的东西分别,要做到这一点。 要从Python调用它们,可以使用或。 以下是有关使用哪个软件包的