from csvresumable import DictReader import logging logging.basicConfig(level=logging.DEBUG) import sys sys.stderr.write("----------------------------------------\n") with open("./data.csv", "r") as rf: r = DictReader(rf) i = 0 for row in r: print(row) if i == 3: break i += 1
import sys import os import random from io import StringIO from csvresumable import DictReader data = """\ id,name 1,foo 2,bar 3,boo """ random.seed(int(os.environ.get("SEED", "0"))) for row in DictReader(StringIO(data)): n = random.random() if n < 0.5: print("fail {}".format(n), file=sys.stderr) sys.exit(0) print("\t", row["name"]) print("finished")
import json import time import sys import argparse from csvresumable import DictReader parser = argparse.ArgumentParser() parser.add_argument("--resume", action="store_true") args = parser.parse_args() with open("input.csv") as rf: r = DictReader(rf, resume=args.resume) for row in r: print("start", row["id"], file=sys.stderr) # 重たい処理 time.sleep(2) print(json.dumps(row)) sys.stdout.flush()
import time import sys from csvresumable import DictReader for filename in ["input.csv", "input2.csv"]: with open(filename) as rf: r = DictReader(rf, key=lambda row: row["userId"]) for row in r: print("start", row["userId"], file=sys.stderr) # 重たい処理 time.sleep(2) if int(row["cache"]) == 0: ans = "-" else: ans = int(row["age"]) / int(row["cache"]) print(row["name"], ans) sys.stdout.flush()
import sys import os import random from io import StringIO from csvresumable import DictReader data = """ id,name 1,foo 2,bar 3,boo """ import argparse parser = argparse.ArgumentParser() parser.add_argument("--seed", default=0, type=int) parser.add_argument("--resume", action="store_true") args = parser.parse_args() random.seed(int(os.environ.get("SEED", "0"))) for row in DictReader(StringIO(data), resume=args.resume): n = random.random() if n > 0.8: print("fail {}".format(n), file=sys.stderr) sys.exit(0) print("\t", row["name"]) print("finished")
from csvresumable import DictReader files = ["a.csv", "b.csv"] for f in files: r = DictReader(f) for row in r: do_something(row)