To create a file, use the open[]
global function.
It accepts 2 parameters: the file path, and the mode.
You can use a
as the mode, to tell Python to open the file in append mode:
file = '/Users/flavio/test.txt'
open[file, 'a'].close[]
#or
open[file, mode='a'].close[]
If the file already exists, its content is not modified. To clear its content, use the w
flag instead:
open[file, 'w'].close[]
#or
open[file, mode='w'].close[]
When you open a file, you must remember to close it after you’ve finished working with it. In this case, we close it immediately, as our goal is to create an empty file.
Remember to close the file, otherwise it will remain open until the end of the program, when it will be automatically closed.
Alternatively, you can use with
:
with open[file, mode='a']: pass
This will automatically close the file.
Creating a file can raise an OSError
exception, for example if the disk is full, so we use a try block to catch it and gracefully handle the problem by printing an
error message:
file = '/Users/flavio/test.txt'
try:
open[file, 'a'].close[]
except OSError:
print['Failed creating the file']
else:
print['File created']
File handling is a very important concept for any programmer. It can be used for creating, deleting, moving files or to store application data, user configurations, videos, images, etc. Python too supports file handling and allows users to handle files i.e., to read and write files, along with many other file handling options, to operate on files.
Refer to the following articles to check the basics of file handling.
- Basics of file handling
- Reading and writing to a file
Creating an empty file
File handling can also be used for creating a file. Even the file with different extension like .pdf
, .txt
, .jpeg
can be created using file handling in Python. To
create a file, the file must be open for writing. To open a file for writing access mode of file must be w, a, w+, a+. Access modes govern the type of operations possible in the opened file. It refers to how the
file will be used once it’s opened. Below is the list of access modes for creating an empty file.
- Write Only [‘w’]: Open the file for writing. For an existing file, the data is truncated and over-written.
- Write and Read [‘w+’]: Open the file for reading and writing. For an existing file, data is truncated and over-written.
- Append Only [‘a’]: Open the file for writing. The data being written will be inserted at the end, after the existing data.
- Append and Read [‘a+’]: Open the file for reading and writing. The data being written will be inserted at the end, after the existing data.
Note: The file is created in the same directory of the script if no path is specified.
Example #1: In this example we will create a new file myfile.txt. To verify this we will use os.listdir[]
method of
os module to list out the directories before and after creating a new file.
import
os
path
=
'D:/Pycharm projects/gfg'
dir_list
=
os.listdir[path]
print
[
"List of directories and files before creation:"
]
print
[dir_list]
print
[]
with
open
[
'myfile.txt'
,
'w'
] as fp:
pass
dir_list
=
os.listdir[path]
print
[
"List of directories and files after creation:"
]
print
[dir_list]
Output:
List of directories and files before creation: ['.idea', 'gfg.py', 'venv'] List of directories and files after creation: ['.idea', 'gfg.py', 'myfile.txt', 'venv']
# Example 2: Creating a new file at a specified location. For creating a file at a specified location os module is used. Below is the implementation.
import
os
path
=
'D:/Pycharm projects/GeeksforGeeks/Nikhil'
file
=
'myfile.txt'
dir_list
=
os.listdir[path]
print
[
"List of directories and files before creation:"
]
print
[dir_list]
print
[]
with
open
[os.path.join[path,
file
],
'w'
] as fp:
pass
dir_list
=
os.listdir[path]
print
[
"List of directories and files after creation:"
]
print
[dir_list]
Output:
List of directories and files before creation: ['test_nikhil.txt'] List of directories and files after creation: ['myfile.txt', 'test_nikhil.txt']