【问题标题】:Create new empty file of a given extension and open it from Terminal创建给定扩展名的新空文件并从终端打开它
【发布时间】:2013-07-29 12:02:09
【问题描述】:

我做了一个可以打开文件的python程序,例如document.docx。如果文件存在,一切都很好:我用命令打开它

  • start document.docx 在 Windows 上
  • xdg-open document.docx 在 Linux 上。

但是,如果文档不存在,我现在想创建它,例如创建一个名为 new.docx 的新空文件并在默认程序中打开它。

我的解决方案是存储我希望使用的每种类型的空文件(空 docx、空 odt、空 png,...),如果用户要求的文件不存在,程序会复制以用户输入命名的空文件并将其打开。

您是否认为它们可能是一种适用于 Windows 和 Ubuntu 的解决方案,不需要为每个使用的扩展存储一个空文件?

编辑:我希望与您在 windows 的上下文菜单中创建文件时的行为相同,您可以选择很多不同类型的文档

(这是法语,但你懂的)

【问题讨论】:

  • 当您执行 new->Word Document 时,它只会创建一个名为 New Microsoft Word Document.docx 的文件,文件中没有字节。 Word 会优雅地处理打开此文件,但如果您对其进行编辑并保存,它将写入所有通常疯狂的 Word 格式。
  • 你认为打开没有字节的文件可以与其他扩展一起使用吗?
  • 这将完全取决于应用程序。它当然不适用于png。 Windows 图片查看器只会显示“无法显示此文件,因为它是空的”。但是什么是一个新的png呢?这对我来说似乎是正确的。
  • 那么为每个需要的扩展存储一个空的新文件的解决方案可能是最可靠的?
  • 哦,你原来的解决方案对吗?我的意思是,这似乎肯定会奏效。我不知道这是否是最优雅的解决方案(我也不知道它不是)。

标签: file shell cmd command file-extension


【解决方案1】:

您最初的解决方案(为所有需要的文件类型使用模板)似乎是标准的做事方式,因为这就是 Windows 和 Ubuntu (Nautilus) 做事的方式。

Windows 使用注册表和 Windows\ShellNew 来访问现有模板。 source

[HKEY_CLASSES_ROOT\.docx\ShellNew]
"FileName"="New Microsoft Word Document.docx"

%windir%\ShellNew 中有一个同名的文件。

与 Ubuntu (Nautilus) 一样,但使用 ~/Templates/ 目录。 source

因此,您最强大的解决方案似乎就是坚持您最初所做的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 2014-03-02
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    相关资源
    最近更新 更多