3

目前我的 Python 程序打开一个像这样的文本文件:

os.system('gedit decryptedText.txt&')

现在,我认为这在 Windows 上不起作用,因为 gedit 是一个 Linux 应用程序?我怎样才能让它在 Windows 和 Linux 上运行。还是两者都适用?

4

3 回答 3

3

首先检查操作系统,然后根据结果分配?

if os.name == 'nt':
    os.system('notepad ecryptedText.txt&')
elif os.name == 'posix':
    os.system('gedit decryptedText.txt&')
于 2012-09-25T14:07:57.557 回答
3

在 MS Windows 上,您可以将os.startfile(filename)用于具有关联编辑器的文件类型。

因此,您的完整解决方案将类似于:

def start_file(filename):
    if os.name == 'nt':
        os.startfile(filename)
    else:
        os.system('gedit %s&' % filename)
于 2012-09-25T14:23:16.197 回答
0

显然,它适用于两者,因为 gedit 是 Universe 的标准编辑器。

开玩笑。它不起作用,因为您实际上是在启动一个特定的应用程序,仅在某些平台 (Linux) 上可用。您可以在配置文件中配置您的默认编辑器启动命令,并使用它来组成您的命令字符串。

于 2012-09-25T14:08:25.300 回答