添加微小的恢复功能,用于 csv 读取迭代器
项目描述
css可恢复
为您的 csv 阅读迭代器添加微小的恢复功能。
例子
00main.py
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")
恢复直到成功。
SEED=0 python 00main.py
fail 0.420571580830845
foo
bar
SEED=1 RESUME=1 python 00main.py
fail 0.13436424411240122
SEED=2 RESUME=1 python 00main.py
boo
finished
SEED=5 python 00main.py
foo
bar
boo
finished
或使用resume
选项设置(运行此脚本,例如python 01main.py --resume
)
--- 00main.py 2018-06-16 04:19:51.573578443 +0900
+++ 01main.py 2018-06-16 04:20:04.760554103 +0900
@@ -4,17 +4,23 @@
from io import StringIO
from csvresumable import DictReader
-data = """\
+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)):
+for row in DictReader(StringIO(data), resume=args.resume):
n = random.random()
- if n < 0.5:
+ if n > 0.8:
print("fail {}".format(n), file=sys.stderr)
sys.exit(0)
print("\t", row["name"])
有多个文件
from csvresumable import DictReader
files = ["a.csv", "b.csv"]
for f in files:
r = DictReader(f)
for row in r:
do_something(row)
更多的
项目详情
关
csvresumable -0.0.3.post2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0840b7bc6ef4161c39572c8366d8265375da60406f38d59f3d17aaecbc7ffc58 |
|
MD5 | e75893243b8376081353f59cfcda5432 |
|
布莱克2-256 | 8d771f45e9b653596f2f1adfc4b9c5a36951a7a45fb66e3e636169de335fc31f |
关
csvresumable -0.0.3.post2-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dbe58d8079d96ee07c985f67db91e57148cf1d01c2503cf410cbfe62a5c217d4 |
|
MD5 | 4ae1c5599b18bd8cde392c3dd940a4e4 |
|
布莱克2-256 | 28edf9bf4ff693ce4c9233ede0bf57450d60674d4b152b2298405627888ae748 |