我想使用變量的名稱作爲文件名。有沒有這種情況可能無效?Python有效文件名中是變量名嗎?
例如:
my_var = "value"
with open("my_var.txt", 'wb') as fp:
pickle.dump(my_var, fp)
這裏「my_var」是一個文件名的兩者部分和可變的名稱。
所以基本上我問,如果python允許變量名稱中的任何字符,這會在文件名中造成麻煩。
我想使用變量的名稱作爲文件名。有沒有這種情況可能無效?Python有效文件名中是變量名嗎?
例如:
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字符,並非所有的字符都可用於文件名。
請參閱https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85) .aspx供參考。 –
由於Python變量名只能包含下劃線,字母和數字,因此它們都可以用作文件名。
可能出現的一個問題雖然很難想象,但您可以讓Python變量的名稱長於某些文件系統允許的長度。 (Windows中260個字符)
它是有效的。 string中的''my_var''是字符串,不可變。 – tilz0R
這高度依賴於操作系統和文件系統。在大多數情況下,這將是有效的,但很長的名字可能會令人不安。 –
這取決於文件系統。字符是可以的,但在python中,你可以定義一個非常長的變量名,這在Windows中會是一個問題。 –