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 个字符)
我想使用变量名作为文件名。在某些情况下这可能不起作用吗?
示例:
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 个字符)