File Operations in Python: Difference between revisions
Line 4: | Line 4: | ||
=Check whether a File Exists= | =Check whether a File Exists= | ||
==<tt>os.path</tt>== | |||
<syntaxhighlight lang='python'> | <syntaxhighlight lang='python'> | ||
import os.path | import os.path | ||
Line 9: | Line 10: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Returns <code>True</code> or <code>False</code>. | Returns <code>True</code> or <code>False</code>. | ||
==<tt>pathlib</tt>== | |||
<code>Path</code> represents a filesystem path that offers methods to do system calls on path objects. Depending on your system, instantiating a <code>Path</code> will return either a <code>PosixPath</code> or a <code>WindowsPath</code> object. You can also instantiate a <code>PosixPath</code> or <code>WindowsPath</code> directly, but cannot instantiate a <code>WindowsPath</code> on a POSIX system or vice versa. | |||
<syntaxhighlight lang='python'> | <syntaxhighlight lang='python'> | ||
from pathlib import Path | from pathlib import Path | ||
Line 15: | Line 17: | ||
path.is_file() | path.is_file() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=Reading/Writing from/to Files= | =Reading/Writing from/to Files= | ||
==Read== | ==Read== |
Revision as of 05:13, 2 March 2022
Internal
Check whether a File Exists
os.path
import os.path
file_exists = os.path.exists(path_to_file)
Returns True
or False
.
pathlib
Path
represents a filesystem path that offers methods to do system calls on path objects. Depending on your system, instantiating a Path
will return either a PosixPath
or a WindowsPath
object. You can also instantiate a PosixPath
or WindowsPath
directly, but cannot instantiate a WindowsPath
on a POSIX system or vice versa.
from pathlib import Path
path = Path(path_to_file)
path.is_file()
Reading/Writing from/to Files
Read
Understand this idiom. What does with
do? Does it automatically close the file when it exits the block? Apparently this is a "context manager".
with open('somefile.txt', 'rt') as f:
text = f.read()
print(text)
f = open(''filename'', ''mode'')
c = f.read()
f.close()
f = open('somefile', 'rt')
c = f.read()
f.close()
Mode: "r", "w", "x", etc. "t" text, "b" binary
Write
f = open('/Users/ovidiu/tmp/out.json', 'wt')
f.write("test\n")
f.close()
Working Directory
import os
print('getcwd:', os.getcwd())
Also see:
The Path of the Running Script File
print('__file__:', __file__)
Paths
os.path.basename
returns the file name from the file path:
import os
print(os.path.basename(__file__))
os.path.dirname
returns the directory name from the file path.
import os
print(os.path.dirname(__file__))
os.path.abspath
return the absolute path from a file path.
os.path.splittext
returns the file name from the file path.
Use the pathlib module to extract directory name.
Removing Files
import os
os.remove("somefile.txt")
os.rmdir("somedir") # removes an empty directory
shutil.rmtree() # deletes a directory and all its contents.
Path
objects from the Python 3.4+ pathlib
module also expose these instance methods:
pathlib.Path.unlink() # removes a file or symbolic link.
pathlib.Path.rmdir() # removes an empty directory.
Temporary Files
Create a named temporary file, write in it and return the name. The file is not automatically deleted after close()
, the caller will need to delete it:
import tempfile
with tempfile.NamedTemporaryFile(mode='w+t', delete=False) as t:
t.write(something)
return t.name