我想将变量的名称用作文件名。是否有任何可能行不通的情况?
示例:
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个字符)