summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-datarecorder.spec409
-rw-r--r--sources1
3 files changed, 411 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..53f474d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/DataRecorder-3.3.2.tar.gz
diff --git a/python-datarecorder.spec b/python-datarecorder.spec
new file mode 100644
index 0000000..ef35275
--- /dev/null
+++ b/python-datarecorder.spec
@@ -0,0 +1,409 @@
+%global _empty_manifest_terminate_build 0
+Name: python-DataRecorder
+Version: 3.3.2
+Release: 1
+Summary: 用于记录数据的模块。
+License: MIT
+URL: https://gitee.com/g1879/DataRecorder
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/92/71/ab5e864abacbdf7fe9c06afb31809a4878899d57ec7d92184a2c5d0cf456/DataRecorder-3.3.2.tar.gz
+BuildArch: noarch
+
+Requires: python3-openpyxl
+
+%description
+# ⭐️简介
+
+本库是一个基于 python 的工具集,用于记录数据到文件(含 sqlite)。
+
+使用方便,代码简洁, 是一个可靠、省心且实用的工具。
+
+还支持多线程同时写入文件。
+
+**交流QQ群:** 897838127
+
+**联系邮箱:** g1879@qq.com
+
+**使用手册:** 📒[点击打开](http://g1879.gitee.io/datarecorder)
+
+# ✨️理念
+
+简单,可靠,省心。
+
+# 📕背景
+
+进行数据采集的时候,常常要保存数据到文件,频繁开关文件会影响效率,而如果等采集结束再写入,会有因异常而丢失数据的风险。
+
+因此写了这些工具,只要把数据扔进去,它们能缓存到一定数量再一次写入,减少文件开关次数,而且在程序崩溃或退出时能自动保存,保证数据的可靠。
+
+它们使用非常方便,无论何时何地,无论什么格式,只要使用`add_data()`方法把数据存进去即可,语法极其简明扼要,使程序员能更专注业务逻辑。
+
+它们还相当可靠,作者曾一次过连续记录超过 300 万条数据,也曾 50 个线程同时运行写入数万条数据到一个文件,依然轻松胜任。
+
+工具还对表格文件(xlsx、csv)做了很多优化,封装了实用功能,可以使用表格文件方便地实现断点续爬、批量转移数据、指定坐标填写数据等。
+
+# 🍀特性
+
+- 可以缓存数据到一定数量再一次写入,减少文件读写次数,降低开销。
+- 支持多线程同时写入数据。
+- 可以在程序崩溃时自动保存,失败时显示剩余数据。
+- 写入时如文件打开,会自动等待文件关闭再写入,避免数据丢失。
+- 对断点续爬提供良好支持。
+- 可方便地批量转移数据。
+- 可根据字典数据自动创建表头。
+- 自动创建文件和路径,减少代码量。
+
+# 🎇概览
+
+这里简要介绍各种工具用途,详细用法请查看使用方法章节。
+
+## ⚡记录器`Recorder`
+
+`Recorder`是最常用的工具,它的功能简单直观高效实用,只做一个动作,就是不断接收数据,按顺序往文件里添加。可以接收单行数据,或二维数据一次写入多行。
+
+它主要支持 csv、xlsx、json、txt 四种格式文件,当目标文件不是这 4 种之一时,按 txt 的方式记录。
+
+```python
+from DataRecorder import Recorder
+
+data = ((1, 2, 3, 4),
+ (5, 6, 7, 8))
+
+r = Recorder('data.csv')
+r.add_data(data) # 一次记录多行数据
+r.add_data('abc') # 记录单行数据
+```
+
+## ⚡表格填充器`Filler`
+
+`Filler`用于对表格文件填写数据,可以指定填其坐标。它的使用非常灵活,可以指定坐标为左上角,填入一片二维数据。还封装了记录数据处理进度的功能(比如断点续爬)。除此以外,它还能给单元格设置链接。
+
+它只支持 csv 和 xlsx 格式文件。
+
+```python
+from DataRecorder import Filler
+
+f = Filler('results.csv')
+f.add_data((1, 2, 3, 4), 'a2') # 从A2单元格开始,写入一行数据
+f.add_data(((1, 2), (3, 4)), 'd4') # 以D4单元格为左上角,写入一片二维数据
+```
+
+## ⚡二进制数据记录器`ByteRecorder`
+
+`ByteRecorder`用法最简单,它和`Recorder`类似,记录多个数据然后按顺序写入文件。不一样的是它只接收二进制数据,每次`add_data()`只能输入一条数据,而且没有行的概念。
+
+可以用来和作者的另一个工具 [FlowViewer](https://gitee.com/g1879/FlowViewer) 配合使用,用来获取浏览器加载的文件,或用来记录下载的文件。可指定每个数据写入文件中的位置,以支持多线程下载文件。
+
+支持任意文件格式。
+
+```python
+from DataRecorder import ByteRecorder
+
+b = ByteRecorder('data.file')
+b.add_data(b'xxxxxxxxxxx') # 向文件写入二进制数据
+```
+
+## ⚡数据库记录器`DBRecorder`(测试)
+
+3.1 版增加的功能,目前只支持 sqlite,用法和`Recorder`一致,支持自动创建数据库、数据表、数据列。
+
+```python
+from DataRecorder import DBRecorder
+
+d = DBRecorder('data.db')
+d.add_data({'name': '张三', 'age': 25}, table='user') # 插入数据到user表
+d.record()
+```
+
+# 🛠使用方法
+
+[📒点击跳转到使用手册](http://g1879.gitee.io/datarecorder)
+
+# ☕ 请我喝咖啡
+
+如果本项目对您有所帮助,不妨请作者我喝杯咖啡 :)
+
+![](https://gitee.com/g1879/DrissionPage-demos/raw/master/pics/code.jpg)
+
+
+%package -n python3-DataRecorder
+Summary: 用于记录数据的模块。
+Provides: python-DataRecorder
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-DataRecorder
+# ⭐️简介
+
+本库是一个基于 python 的工具集,用于记录数据到文件(含 sqlite)。
+
+使用方便,代码简洁, 是一个可靠、省心且实用的工具。
+
+还支持多线程同时写入文件。
+
+**交流QQ群:** 897838127
+
+**联系邮箱:** g1879@qq.com
+
+**使用手册:** 📒[点击打开](http://g1879.gitee.io/datarecorder)
+
+# ✨️理念
+
+简单,可靠,省心。
+
+# 📕背景
+
+进行数据采集的时候,常常要保存数据到文件,频繁开关文件会影响效率,而如果等采集结束再写入,会有因异常而丢失数据的风险。
+
+因此写了这些工具,只要把数据扔进去,它们能缓存到一定数量再一次写入,减少文件开关次数,而且在程序崩溃或退出时能自动保存,保证数据的可靠。
+
+它们使用非常方便,无论何时何地,无论什么格式,只要使用`add_data()`方法把数据存进去即可,语法极其简明扼要,使程序员能更专注业务逻辑。
+
+它们还相当可靠,作者曾一次过连续记录超过 300 万条数据,也曾 50 个线程同时运行写入数万条数据到一个文件,依然轻松胜任。
+
+工具还对表格文件(xlsx、csv)做了很多优化,封装了实用功能,可以使用表格文件方便地实现断点续爬、批量转移数据、指定坐标填写数据等。
+
+# 🍀特性
+
+- 可以缓存数据到一定数量再一次写入,减少文件读写次数,降低开销。
+- 支持多线程同时写入数据。
+- 可以在程序崩溃时自动保存,失败时显示剩余数据。
+- 写入时如文件打开,会自动等待文件关闭再写入,避免数据丢失。
+- 对断点续爬提供良好支持。
+- 可方便地批量转移数据。
+- 可根据字典数据自动创建表头。
+- 自动创建文件和路径,减少代码量。
+
+# 🎇概览
+
+这里简要介绍各种工具用途,详细用法请查看使用方法章节。
+
+## ⚡记录器`Recorder`
+
+`Recorder`是最常用的工具,它的功能简单直观高效实用,只做一个动作,就是不断接收数据,按顺序往文件里添加。可以接收单行数据,或二维数据一次写入多行。
+
+它主要支持 csv、xlsx、json、txt 四种格式文件,当目标文件不是这 4 种之一时,按 txt 的方式记录。
+
+```python
+from DataRecorder import Recorder
+
+data = ((1, 2, 3, 4),
+ (5, 6, 7, 8))
+
+r = Recorder('data.csv')
+r.add_data(data) # 一次记录多行数据
+r.add_data('abc') # 记录单行数据
+```
+
+## ⚡表格填充器`Filler`
+
+`Filler`用于对表格文件填写数据,可以指定填其坐标。它的使用非常灵活,可以指定坐标为左上角,填入一片二维数据。还封装了记录数据处理进度的功能(比如断点续爬)。除此以外,它还能给单元格设置链接。
+
+它只支持 csv 和 xlsx 格式文件。
+
+```python
+from DataRecorder import Filler
+
+f = Filler('results.csv')
+f.add_data((1, 2, 3, 4), 'a2') # 从A2单元格开始,写入一行数据
+f.add_data(((1, 2), (3, 4)), 'd4') # 以D4单元格为左上角,写入一片二维数据
+```
+
+## ⚡二进制数据记录器`ByteRecorder`
+
+`ByteRecorder`用法最简单,它和`Recorder`类似,记录多个数据然后按顺序写入文件。不一样的是它只接收二进制数据,每次`add_data()`只能输入一条数据,而且没有行的概念。
+
+可以用来和作者的另一个工具 [FlowViewer](https://gitee.com/g1879/FlowViewer) 配合使用,用来获取浏览器加载的文件,或用来记录下载的文件。可指定每个数据写入文件中的位置,以支持多线程下载文件。
+
+支持任意文件格式。
+
+```python
+from DataRecorder import ByteRecorder
+
+b = ByteRecorder('data.file')
+b.add_data(b'xxxxxxxxxxx') # 向文件写入二进制数据
+```
+
+## ⚡数据库记录器`DBRecorder`(测试)
+
+3.1 版增加的功能,目前只支持 sqlite,用法和`Recorder`一致,支持自动创建数据库、数据表、数据列。
+
+```python
+from DataRecorder import DBRecorder
+
+d = DBRecorder('data.db')
+d.add_data({'name': '张三', 'age': 25}, table='user') # 插入数据到user表
+d.record()
+```
+
+# 🛠使用方法
+
+[📒点击跳转到使用手册](http://g1879.gitee.io/datarecorder)
+
+# ☕ 请我喝咖啡
+
+如果本项目对您有所帮助,不妨请作者我喝杯咖啡 :)
+
+![](https://gitee.com/g1879/DrissionPage-demos/raw/master/pics/code.jpg)
+
+
+%package help
+Summary: Development documents and examples for DataRecorder
+Provides: python3-DataRecorder-doc
+%description help
+# ⭐️简介
+
+本库是一个基于 python 的工具集,用于记录数据到文件(含 sqlite)。
+
+使用方便,代码简洁, 是一个可靠、省心且实用的工具。
+
+还支持多线程同时写入文件。
+
+**交流QQ群:** 897838127
+
+**联系邮箱:** g1879@qq.com
+
+**使用手册:** 📒[点击打开](http://g1879.gitee.io/datarecorder)
+
+# ✨️理念
+
+简单,可靠,省心。
+
+# 📕背景
+
+进行数据采集的时候,常常要保存数据到文件,频繁开关文件会影响效率,而如果等采集结束再写入,会有因异常而丢失数据的风险。
+
+因此写了这些工具,只要把数据扔进去,它们能缓存到一定数量再一次写入,减少文件开关次数,而且在程序崩溃或退出时能自动保存,保证数据的可靠。
+
+它们使用非常方便,无论何时何地,无论什么格式,只要使用`add_data()`方法把数据存进去即可,语法极其简明扼要,使程序员能更专注业务逻辑。
+
+它们还相当可靠,作者曾一次过连续记录超过 300 万条数据,也曾 50 个线程同时运行写入数万条数据到一个文件,依然轻松胜任。
+
+工具还对表格文件(xlsx、csv)做了很多优化,封装了实用功能,可以使用表格文件方便地实现断点续爬、批量转移数据、指定坐标填写数据等。
+
+# 🍀特性
+
+- 可以缓存数据到一定数量再一次写入,减少文件读写次数,降低开销。
+- 支持多线程同时写入数据。
+- 可以在程序崩溃时自动保存,失败时显示剩余数据。
+- 写入时如文件打开,会自动等待文件关闭再写入,避免数据丢失。
+- 对断点续爬提供良好支持。
+- 可方便地批量转移数据。
+- 可根据字典数据自动创建表头。
+- 自动创建文件和路径,减少代码量。
+
+# 🎇概览
+
+这里简要介绍各种工具用途,详细用法请查看使用方法章节。
+
+## ⚡记录器`Recorder`
+
+`Recorder`是最常用的工具,它的功能简单直观高效实用,只做一个动作,就是不断接收数据,按顺序往文件里添加。可以接收单行数据,或二维数据一次写入多行。
+
+它主要支持 csv、xlsx、json、txt 四种格式文件,当目标文件不是这 4 种之一时,按 txt 的方式记录。
+
+```python
+from DataRecorder import Recorder
+
+data = ((1, 2, 3, 4),
+ (5, 6, 7, 8))
+
+r = Recorder('data.csv')
+r.add_data(data) # 一次记录多行数据
+r.add_data('abc') # 记录单行数据
+```
+
+## ⚡表格填充器`Filler`
+
+`Filler`用于对表格文件填写数据,可以指定填其坐标。它的使用非常灵活,可以指定坐标为左上角,填入一片二维数据。还封装了记录数据处理进度的功能(比如断点续爬)。除此以外,它还能给单元格设置链接。
+
+它只支持 csv 和 xlsx 格式文件。
+
+```python
+from DataRecorder import Filler
+
+f = Filler('results.csv')
+f.add_data((1, 2, 3, 4), 'a2') # 从A2单元格开始,写入一行数据
+f.add_data(((1, 2), (3, 4)), 'd4') # 以D4单元格为左上角,写入一片二维数据
+```
+
+## ⚡二进制数据记录器`ByteRecorder`
+
+`ByteRecorder`用法最简单,它和`Recorder`类似,记录多个数据然后按顺序写入文件。不一样的是它只接收二进制数据,每次`add_data()`只能输入一条数据,而且没有行的概念。
+
+可以用来和作者的另一个工具 [FlowViewer](https://gitee.com/g1879/FlowViewer) 配合使用,用来获取浏览器加载的文件,或用来记录下载的文件。可指定每个数据写入文件中的位置,以支持多线程下载文件。
+
+支持任意文件格式。
+
+```python
+from DataRecorder import ByteRecorder
+
+b = ByteRecorder('data.file')
+b.add_data(b'xxxxxxxxxxx') # 向文件写入二进制数据
+```
+
+## ⚡数据库记录器`DBRecorder`(测试)
+
+3.1 版增加的功能,目前只支持 sqlite,用法和`Recorder`一致,支持自动创建数据库、数据表、数据列。
+
+```python
+from DataRecorder import DBRecorder
+
+d = DBRecorder('data.db')
+d.add_data({'name': '张三', 'age': 25}, table='user') # 插入数据到user表
+d.record()
+```
+
+# 🛠使用方法
+
+[📒点击跳转到使用手册](http://g1879.gitee.io/datarecorder)
+
+# ☕ 请我喝咖啡
+
+如果本项目对您有所帮助,不妨请作者我喝杯咖啡 :)
+
+![](https://gitee.com/g1879/DrissionPage-demos/raw/master/pics/code.jpg)
+
+
+%prep
+%autosetup -n DataRecorder-3.3.2
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-DataRecorder -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 3.3.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..92d0fab
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+396b699defb1cf7aa4f6921d9951f1b0 DataRecorder-3.3.2.tar.gz