What variable name do you use for file descriptors?
Asked Answered
L

6

17

A pretty silly trivial question. The canonical example is f = open('filename'), but

  • f is not very descriptive. After not looking at code in a while, you can forget whether it means "file" or "function f(x)" or "fourier transform results" or something else. EIBTI.
  • In Python, file is already taken by a function.

What else do you use?

Lachus answered 13/9, 2009 at 22:48 Comment(2)
file() was deprecated in 2.x then flat out removed in 3.x, so IMHO it's fair gameObliquely
@NickT Good. I'm always confused whether to use file or openLachus
A
8
 data_file
 settings_file
 results_file
 .... etc
Alagez answered 13/9, 2009 at 22:55 Comment(3)
"Method Names and Instance Variables - Use the function naming rules: lowercase with words separated by underscores as necessary to improve readability." python.org/dev/peps/pep-0008Lachus
@endolith: You should use my suggestion for Python code. Camel case is Java style.Varico
As I said, "with" doesn't work for me, and "f" is too short and non-descript (which was the whole point of this question). I wish this answer were python style, but it's still the best of the bunch.Lachus
V
6

You can append it to the beginning, Hungarian-like "file_fft".

However, I would try to close file descriptors as soon as possible, and I recommend using the with statement like this so you don't have to worry about closing it, and it makes it easier to not lose track of it.

with open("x.txt") as f:
    data = f.read()
    do something with data
Varico answered 13/9, 2009 at 22:56 Comment(3)
"with" is a great! It has definitely cleaned my code up considerable. You can use it in 2.5 "from future import with_statement"Ancel
The object I'm using to open the file does not work with with statements. "object has no attribute 'exit'"Lachus
@endolith: Then use contextlib.closing.Datum
N
4

I'm happy to use f (for either a function OR a file;-) if that identifier's scope is constrained to a pretty small compass (such as with open('zap') as f: would normally portend, say). In general, identifiers with large lexical scopes should be longer and more explicit, ones with lexically small/short scopes/lifespans can be shorter and less explicit, and this applies to open file object just about as much as to any other kind of object!-)

Nils answered 14/9, 2009 at 1:15 Comment(0)
K
3

Generally if the scope of a file object is only a few lines, f is perfectly readable - the variable name for the filename in the open call is probably descriptive enough. otherwise something_file is probably a good idea.

Kongo answered 14/9, 2009 at 11:8 Comment(0)
D
2

generally I'll use "fp" for a short-lifetime file pointer.

for a longer-lived descriptor, I'll be more descriptive. "fpDebugLog", for example.

Dugald answered 13/9, 2009 at 22:55 Comment(0)
G
0

I rather use one of: f, fp, fd.

Sometimes inf / outf for input and output file.

Geographical answered 14/9, 2009 at 10:56 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.