Python中的变量名是否有效?

时间:2017-08-31 14:26:16

标签: python filesystems

我想使用变量名作为文件名。有什么情况可能不起作用吗?

示例:

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

这里“my_var”既是文件名的一部分,也是变量的名称。

所以基本上我问的是python是否允许变量名中的任何字符,这会在文件名中造成麻烦。

2 个答案:

答案 0 :(得分:3)

这可能因其他操作系统而异,但在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字符,并非所有Unicode字符都可用于文件名。

答案 1 :(得分:1)

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

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