为啥文件名的下划线比连字符更好?

Posted

技术标签:

【中文标题】为啥文件名的下划线比连字符更好?【英文标题】:Why are underscores better than hyphens for file names?为什么文件名的下划线比连字符更好? 【发布时间】:2011-02-13 23:09:00 【问题描述】:

来自Building Skills in Python:

exercise_1.py 这样的文件名比名称execise-1.py 更好。我们可以从命令行同样运行这两个程序,但是带有连字符的名称限制了我们编写更大更复杂程序的能力。

这是为什么?

【问题讨论】:

顺便说一句,该特定文档的作者是该站点上排名最高的 Python 回答者之一:***.com/users/10661/s-lott 超级用户相关讨论:Using underscore in file names vs dashes?. 这也是一本好书,在 Unix 和 Linux 上:Good style/practices for separators in file (or directory) names 【参考方案1】:

这里的问题是导入文件名中带有hyphen-minus(默认键盘键-;U+002D)的文件不起作用,因为它在Python中代表减号。因此,如果您有自己想要导入的模块,则其名称中不应包含连字符:

>>> import test-1
  File "<stdin>", line 1
    import test-1
               ^
SyntaxError: invalid syntax
>>> import test_1
>>>

较大的程序往往在逻辑上被分成许多不同的模块,因此引用

带有连字符的名称限制了我们编写更大、更复杂的程序的能力。

【讨论】:

【参考方案2】:

来自该文档(第 368 页,第 30.2 节“模块定义”):

请注意,模块名称必须是有效的 Python 名称...模块名称仅限于字母、数字和“_”。

【讨论】:

... 距离不使用连字符的文字大约三百页。

以上是关于为啥文件名的下划线比连字符更好?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 .NET 运行时会在我的字符串中添加下划线?

FPDF.php 的文件大小比 TCPDF.php 小约 20 倍?为啥?

google-命名约定

有没有比我的实现更好的方法来检查更新的文件?

Java,为啥从 MappedByteBuffer 读取比从 BufferedReader 读取慢

为啥使用比使用更好?