是Python有效文件名中的可变名称



我想将变量的名称用作文件名。是否有任何可能行不通的情况?

示例:

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

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

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

这可能会因其他OS而有所不同,但是在Windows下,Python变量名称中也不允许使用所有保留的文件名(禁止)字符:

  • <(小于)
  • >(大于)
  • :(colon)
  • "(双引号)
  • /(前向斜线)
  • (BackSlash)
  • |(垂直条或管道)
  • ?(问号)
  • *(星号)

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

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

因此,即使CON在Python中是一个非常有效的变量名称,您也无法在Windows下命名CON.txt

然后,文件名是一个长度限制,因此很长的可变名称可能会导致问题。

最后,Python变量名称可能由各种Unicode字符组成,并非所有这些字符都可以用于文件名。

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

尽管很难想象,可能会出现的一个问题是,您的python变量名称可能比某些文件系统允许的时间更长。(Windows中的260个字符)

最新更新