# import Path class from pathlib import Path # create path object - the path can be relative or absolute path = Path('data/file.txt') try: # create parent directory if it doesn't exist path.parent.mkdir(parents=True, exist_ok=True) # write content to file (create/overwrite) path.write_text('Hello Python', encoding='utf-8') # append content to file with path.open('a', encoding='utf-8') as f: f.write("\n!") # read content from file text = path.read_text(encoding='utf-8') print(text) except FileNotFoundError: print("File not found") except PermissionError: print("Permission denied") except Exception as e: print(f"An error occurred: {e}")Output:
Hello Python !
from pathlib import Path path = Path('data/file.txt') # check if file exists if path.exists(): print(f'the file \'{path}\' exists') else: print(f'the file \'{path}\' doesn\'t exists')Output:
the file 'data/file.txt' exists
from pathlib import Path path = Path('data/file.txt') print(f'is file: {path.is_file()}') print(f'is directory : {path.is_dir()}') print(f'file info: {path.stat()}')Output:
is file: True is directory : False file info: os.stat_result(st_mode=33204, st_ino=17898, st_dev=2080, st_nlink=1, st_uid=1000, st_gid=1000, st_size=14, st_atime=1748889846, st_mtime=1748889817, st_ctime=1748889817)
from pathlib import Path path = Path('data/file.bin') path.parent.mkdir(parents=True, exist_ok=True) # write binary data to file (create/overwrite) path.write_bytes('Hello Python'.encode('utf-8')) # read binary data from file data = path.read_bytes() print(data.decode('utf-8'))Output:
Hello Python
from pathlib import Path # import json module import json # data x = { 'a': 1, 'b': 2 } y = { 'a': 11, 'b': 22 } z = [x, y] # list of dictionaries w = { 'r': x, 's': y, 't': z } # dictionary of list, set, and dictionaries path = Path('data/file.json') # write JSON to file path.write_text(json.dumps(w, indent=2), encoding='utf-8') # read JSON file text_indented = path.read_text(encoding='utf-8') print(text_indented) text_json = json.loads(path.read_text(encoding='utf-8')) print(list(text_json.keys())) # Output: ['r', 's', 't'] print(text_json['t'][0]['b']) # Output: 2Output:
{ "r": { "a": 1, "b": 2 }, "s": { "a": 11, "b": 22 }, "t": [ { "a": 1, "b": 2 }, { "a": 11, "b": 22 } ] } ['r', 's', 't'] 2
from pathlib import Path # import csv module import csv data = [ ['name', 'score'], ['a', 10], ['b', 15] ] path = Path('data/file.csv') # write CSV with path.open('w', newline='', encoding='utf-8') as f: writer = csv.writer(f) writer.writerows(data) # read CSV with path.open('r', encoding='utf-8') as f: reader = csv.reader(f) # read headers headers = next(reader) print(f"headers: {headers}") for i, line in enumerate(reader, 1): print(f"line {i}: {dict(zip(headers, line))}")Output:
headers: ['name', 'score'] line 1: {'name': 'a', 'score': '10'} line 2: {'name': 'b', 'score': '15'}