2017-08-31 4 views
-1

ファイル名として変数の名前を使いたいです。これがうまくいかない場合がありますか?Pythonの変数名は有効なファイル名ですか?

例:ここでは

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

「MY_VAR」ファイル名の一部や変数の名前でもあります。

だから、基本的に私はPythonが変数名に任意の文字を許可するかどうかを尋ねています。それはファイル名に問題を起こすでしょう。

+0

有効です。 stringの '' my_var "'は文字列であり、可変ではありません。 – tilz0R

+1

これは、OSとファイルシステムによって大きく異なります。ほとんどの場合、有効になりますが、非常に長い名前が問題になる可能性があります。 –

+0

はファイルシステムに依存します。文字はOKですが、Pythonでは非常に長い変数名を定義することができます。これは、たとえばWindowsの問題です。 –

答えて

3

これは、他のOSのために異なる場合がありますが、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 

だから、あなたは「できますCONがPythonで完全に有効な変数名になっても、ウィンドウ下のファイルCON.txtの名前を付けてください。

次に、ファイル名の長さ制限があるため、非常に長い変数名で問題が発生する可能性があります。

最後に、Pythonの変数名は、広範囲のUnicode文字で構成されている可能性がありますが、すべてがファイル名に使用できるわけではありません。

+0

https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85)を参照してください。 .aspxを参照してください。 –

1

Pythonの変数名は、アンダースコア、文字、および数字のみを含むことができるため、すべてファイル名として使用できます。

想像することはできませんが、いくつかのファイルシステムよりも長いPython変数名を持つことができます。 (Windowsでは260文字)

関連する問題