添加微型resume函数,用于csv读取迭代器

csvresumable的Python项目详细描述


CSS可消费

为csv读取迭代器添加微小的resume函数。

示例

00英里/年

importsysimportosimportrandomfromioimportStringIOfromcsvresumableimportDictReaderdata="""\id,name1,foo2,bar3,boo"""random.seed(int(os.environ.get("SEED","0")))forrowinDictReader(StringIO(data)):n=random.random()ifn<0.5:print("fail {}".format(n),file=sys.stderr)sys.exit(0)print("\t",row["name"])print("finished")

继续直到成功。

SEED=0 python 00main.pyfail 0.420571580830845	 foo	 barSEED=1 RESUME=1 python 00main.pyfail 0.13436424411240122SEED=2 RESUME=1 python 00main.py	 boofinishedSEED=5 python 00main.py	 foo	 bar	 boofinished

或者使用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"])

多文件

fromcsvresumableimportDictReaderfiles=["a.csv","b.csv"]forfinfiles:r=DictReader(f)forrowinr:do_something(row)

更多

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
哎呀,为什么我的构造函数不能工作?(爪哇)   cmd命令,用于在Java WinSCP中将文件从本地计算机同步到远程服务器   java 安卓无法建立URL连接   java logback手动调用滚动   java是否有编写智能卡访问功能测试的API?   java JPQL多连接和集合   java是否可以使用@NotifyChange而不是BindUtils。有什么变化吗?   使用JNA运行的OSGiJava应用程序在IDE中工作,但不是独立的   java返回箭头时添加事件(getSupportActionBar()。单击setDisplayHomeAsUpEnabled(true))   Java在处理动画时速度较慢   java同时使用JMockit和Spring AOP   java错误:/Applications/Xcode。app/Contents/Developer/usr/bin/make:选项a无效   查看子类方法的java超类   java Making(桌面)软件,其组件用不同语言编程?   java Android Studio:id为'com的插件。安卓找不到“功能”