【问题标题】:".directory" in home acceptable?家中的“.directory”可以接受吗?
【发布时间】:2023-04-07 18:35:01
【问题描述】:

我想将脚本的数据保存到磁盘上,以便下次脚本运行时加载。为简单起见,使用os.path.expanduser('~') 并在那里保存一个名为“.myscript_data”的目录是个好主意吗?它只需要由脚本读取,并且为了避免用户混乱,我希望它被隐藏。在用户计算机上放置隐藏的“.files”是否可以接受?

【问题讨论】:

  • 我认为.files没有隐藏在windows下
  • @XavierCombelle 我尝试重命名一个 Windows 文件夹“.x”,它说“我必须提供一个文件名”或类似的东西。
  • 您仍然可以使用命令行在 Windows 中创建点文件/点文件夹。只有 Windows 资源管理器不会让您制作它们。但是,它们不会被隐藏;如果你想让它们不可见,你仍然必须应用 hidden 属性(这就是像 SVN 和 git 这样的 VCS 对它们的 .svn/.git 目录所做的)

标签: python configuration


【解决方案1】:

在 Windows 上,使用 os.environ['APPDATA'] 的子文件夹;在 Linux 上,$HOME 下的点文件夹是典型的。

您还可以考虑将文件放在~/.config* 的子目录中,这是一种新兴的配置文件放置标准。另请参阅XDG basefiles spec

不完全相关,但很有趣:origin of dotfiles

*(编辑)更准确地说,os.environ.get('XDG_CONFIG_HOME', os.path.expanduser('~/.config')) 根据 XDG 规范。

【讨论】:

  • Ooo...我期待一个每个人都将配置文件放在~/.config而不是~的世界...
  • 根据 LSB(如果我没记错的话)$HOME/.config/$appname/ 应该用于配置文件 - .$HOME/.$appname/ 被认为是旧的。大量数据不应该放在那里。
【解决方案2】:

是的,是的。 (我假设您使用的是 linux,对吗?)
另见this

【讨论】:

  • 我正在 Mac OS X 上开发,但我希望它对类 unix 通用。如果我不必重新编写脚本,Windows 支持会很好。
【解决方案3】:

是的,这是大多数 Unix 系统的标准做法。为了透明起见,最好在第一次创建存储位置时打印一条信息性消息,例如 Creating directory .dir to store script state

如果您希望存储大量数据,最好与用户确认位置。

这也是您的应用程序的任何其他配置文件的标准位置。

【讨论】:

  • 只有5KB左右,我觉得应该没问题。我正在努力使脚本具有超可读性,以便人们可以弄清楚(我将包括设置数据存储位置的首选项,默认显示~/.mydata
【解决方案4】:

在 Linux 上,我建议在 os.environ['XDG_CONFIG_HOME'] 中使用文件或目录(无点文件),大多数情况下是目录 $HOME/.config。然而,$HOME 中的点文件也经常被使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    相关资源
    最近更新 更多