Hướng dẫn python create empty file

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']