Python 中的变量名是否有效?

Are variable names in Python valid file names?

我想使用变量名作为文件名。在某些情况下这可能不起作用吗?

示例:

my_var = "value" 
with open("my_var.txt", 'wb') as fp:
    pickle.dump(my_var, fp)

这里"my_var"既是文件名的一部分,又是变量名。

所以基本上我是在问 python 是否允许在变量名中使用任何字符,这会给文件名带来麻烦。

这可能因其他操作系统而异,但在 Windows 下,Python 变量名中也不允许文件名的所有保留(禁止)字符:

  • <(小于)
  • >(大于)
  • :(冒号)
  • "(双引号)
  • /(正斜杠)
  • \(反斜杠)
  • | (竖条或管道)
  • ? (问号)
  • *(星号)

但是,存在一些不同的问题:某些名称不允许作为 Windows 文件名,特别是:

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9

因此,您不能在 windows 下命名文件 CON.txt,即使 CON 在 Python 中是一个完全有效的变量名。

然后,文件名有长度限制,所以很长的变量名可能会导致问题。

最后,Python 变量名可能由范围广泛的 Unicode 字符组成,但并非所有字符都可用于文件名。

由于Python变量名只能包含下划线、字母和数字,它们都可以用作文件名。

虽然难以想象,但可能出现的一个问题是您的 Python 变量名可能比某些文件系统允许的长。 (Windows 中有 260 个字符)