Syntax
- Read Files
with open("file.txt", mode='r') as file:
data = file.read()
# file.read() -> reads entire file as a string
# file.readline() -> reads a single line
# file.readlines() -> reads all lines into a list
# for line in file: -> iterate over lines: efficient for large files
- Write Files
with open("file.txt", mode='w') as file:
file.write("Hello\nWorld")
lines = ["line1\n", "line2\n"]
file.writelines(lines)
Examples
# count num lines in file
def count_lines(path: str) -> int:
with open(path, mode='r') as file:
return sum(1 for _ in f)
# copy contents from one file to another
def copy_file(src: file, dst: str):
with open(src, mode='r') as fsrc, open(dst, mode='w') as fdst:
for line in fsrc:
fdst.write(line)
# read csv into list of dicts
import csv
def read_csv(path: str):
with open(path, mode='r') as file:
reader = csv.DictReader(file)
return list(reader)
Argparse
import argparse
if __name__ == '__main__':
parser =argparse.ArgumentParser(description="")
parser.add_argument("input", help="")
parser.add_argument("-o", "--output", help="" )
parser.add_argument("-v", "--verbose", action="store_true", help="Show verbose output")