2009-09-13 103 views
6

一個非常愚蠢的小問題。規範示例是f = open('filename'),但是你使用什麼變量名作爲文件描述符?

  • f不是很具描述性。在不看代碼的時候, 你可以忘記它是否意味着 「file」或「function f(x)」或「fourier transform results」或別的東西。 EIBTI。
  • 在Python中,file已被某個函數佔用。

你用什麼呢?

+3

'文件()'被廢棄在2.X然後平掉在3.x中刪除,所以恕我直言,這是公平的遊戲 – 2014-05-14 06:28:14

+0

@NickT好。我總是困惑是否使用'文件'或'打開' – endolith 2014-05-14 11:47:16

回答

4
data_file 
settings_file 
results_file 
.... etc 
+7

這是有點unpythonic。 PEP 8建議使用lower_case_with_underscores。 – 2009-09-13 23:42:39

+1

「方法名稱和實例變量 - 使用函數命名規則:小寫字母,必要時用下劃線分隔以提高可讀性。」 http://www.python.org/dev/peps/pep-0008/ – endolith 2009-09-13 23:50:58

+0

@endolith:您應該使用我的Python代碼建議。駱駝案例是Java風格。 – Unknown 2009-09-19 23:24:56

2

通常我會用「FP」的短壽命文件指針。

對於更長壽的描述符,我會更具描述性。例如,「fpDebugLog」。

4

您可以將其追加到匈牙利式的「file_fft」開頭。

但是,我會嘗試儘快關閉文件描述符,並且我建議使用這樣的語句,這樣您不必擔心關閉它,並且它更容易不丟失它的跟蹤。

with open("x.txt") as f: 
    data = f.read() 
    do something with data 
+0

「與」是一個偉大的!它絕對清理了我的代碼。你可以在2.5「中使用它,從__future__ import with_statement」 – 2009-09-14 04:14:42

+0

我用來打開文件的對象不適用於語句。 「對象沒有屬性 '__exit__'」 – endolith 2009-09-19 22:52:05

+1

@endolith:然後使用['contextlib.closing'](http://docs.python.org/library/contextlib.html#contextlib.closing)。 – icktoofay 2012-10-06 03:34:37

3

我很樂意使用f(對於一個功能或文件;-)如果該標識符的範圍被限制在一個非常小的羅盤(如with open('zap') as f:通常會預示着,說的)。一般來說,大型詞法作用域標識符應該更長和更明確的,那些與詞法小/短範圍/壽命可短,不太明顯的,這也適用於打開文件對象幾乎不亞於任何其他類型的對象! - )

0

我寧願使用:f, fp, fd之一。

有時inf/outf輸入和輸出文件。

2

通常,如果文件對象的範圍只有幾行,那麼f是完全可讀的 - 打開調用中文件名的變量名稱可能足以說明問題。否則something_file可能是一個好主意。

相關問題