Python3读写dbf文本

2023-05-16

Python3读写dbf文本

安装环境

pip install dbf

关于dbf的文档可以在一下网址了解dbf文档(https://pythonhosted.org/dbf/)
还有github的地址(https://github.com/ethanfurman/dbf/tree/master/dbf)

操作示例与介绍

  • 把现有的dbf文件的数据,copy到一个指定的模板里面,建议此方式
'''
把现有的dbf文件的数据,copy到一个指定的模板里面,并填充新增的项
'''
import dbf

src_filename = 'xxxx\\test.DBF' #原dbf的地址
des_filename = 'xxxx\\template.DBF' #期望得到的dbf模板
# create an in-memory table 
table = dbf.Table(
        filename=des_filename, #打开模板文件
        codepage='cp936', #相当于gbk的方式打开
        on_disk=True,     #是否在磁盘上保存修改
        )
table.open(mode=dbf.READ_WRITE)  #让内存中的table以可读写的方式打开,默认为只读

#同上 以只读的方式打开原dbf
src_table = dbf.Table(
        filename=src_filename,
        codepage='cp936',
        )
src_table.open()
for i in src_table:
	#这里的i并不是一个列表,而是一个数据结构,可以通过以下的方式转化为列表
    record_len = len(i)
    one_data_list = i[0:record_len] + ['00','']
    one_data = tuple(one_data_list)
    table.append(record)
#当然 你也可以自己添加新的一行数据 如下
new_record = (1, '1', '测试', '20200831', '20200831', '1', '', '00', '')
table.append(new_record)
#可以用下面的方式,读取
for record in table:
    print(record)
    print('--------')
    print(record[0:9])
    print([record.HGSQXH, record.HGZQZH, record.HGZHMC])
    print('--------')
src_table.close()
table.close() #关闭并保存到磁盘
  • 新建一个新的格式的dbf,笔者目前没有实际使用场景,在此给出说明文档给的示例,为了方便运行,做了一些修改。
import datetime
import dbf

# create an in-memory table
table = dbf.Table(
        filename='test',
        field_specs='name C(25); age N(3,0); birth D; qualified L',
        on_disk=False,
        )
table.open(mode=dbf.READ_WRITE)

# add some records to it
for datum in (
        ('Spanky', 7, dbf.Date.fromymd('20010315'), False),
        ('Spunky', 23, dbf.Date.fromymd('20010315'), True),
        ('Sparky', 99, dbf.Date(), dbf.Unknown),
        ):
    table.append(datum)

# iterate over the table, and print the records
for record in table:
    print(record)
    print('--------')
    print(record[0:3])
    print([record.name, record.age, record.birth])
    print('--------')

# make a copy of the test table (structure, not data)
custom = table.new(
        filename='test_on_disk',
        default_data_types=dict(C=dbf.Char, D=dbf.Date, L=dbf.Logical),
        )

# automatically opened and closed
with custom:
    # copy records from test to custom
    for record in table:
        custom.append(record)
    # modify each record in custom (could have done this in prior step)
    for record in custom:
        dbf.write(record, name=record.name.upper())
        # and print the modified record
        print(record)
        print('--------')
        print(record[0:3])
        print([record.name, record.age, record.birth])
        print('--------')

table.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3读写dbf文本 的相关文章

  • Python3、setuptools、Pip3安装详解

    博客核心内容 1 Python3安装 2 setuptools安装 3 Pip3安装 之所以写这篇博客 也是有很多原因了 每次安装都要从网上各种百度 网上的答案也是各种各样 于是决定好好总结一下 下面是我在安装的过程中参考的几篇博客 附上相
  • Opencv-python3,处理rtsp流视频-----踩坑总结+VideoCapture.get()详解:

    最近项目在用opencv处理rtsp流相机 中间也踩了很多坑 这里写篇博客帮助那些可能会遇到相似问题的同胞 注 我这里同时用到了四个相机 1 电脑同时连接多个相机后 之后去打开rtsp相机时 初次打开特别耗时 甚至打开失败 在Win10上需
  • jquery ajax url中有中文,后端乱码的解决方法.txt

    参考 https zhidao baidu com question 2057437468670456147 html url类似 http localhost 8080 floorsNodes 风管 json 方法 在jquery aja
  • Linux内存精确统计工具

    1 ps mem介绍 ps mem是一个可以帮助我们精确获取 Linux 中各个程序核心内存使用情况的简单python脚本 它会分别计算一个程序私有内存总量和共享内存总量 并以更准确的方式给出了总的内存使用量 2 安装方式 包管理器 pip
  • ValueError: Found array with dim 4. Estimator expected和ValueError: Expected 2D array, got 1D array i

    python3中对numpy数组进行降维或升维 解决报错如 1 ValueError Found array with dim 4 Estimator expected 2 ValueError Expected 2D array got
  • python3 模块、import、from import

    模块 1 模块就是 py后缀的文件 2 py文件类似于一个类 包含以下部分 1 导入 一般的类都有导入 2 变量 对应类的属性 3 函数 对应类的方法 4 类 对应内部类 5 if name main 对应主函数 6 顶格写的代码段 对应构
  • python3 Excel转txt

    使用场景 每次都是点一下Excel表格链接 调到浏览器中 内容数据也多 这种机械的活 对于程序员来说 能省则省 最后的结果 附上代码 coding utf 8 Time 2018 7 19 19 47 Author 蛇崽 Email 643
  • python3 sys.argv.py

    模块 01 sys argv py 功能 获取命令行参数 参考 https www runoob com python3 python3 command line arguments html 命令行 python 01 sys argv
  • python 头条 sign 参数 此篇针对实时列表 请使用73版本的谷歌浏览器

    1 首先谷歌浏览器打开今日头条F12调试找到sources 以旅游模块为例以此类推都一样 网站如https www toutiao com ch news travel 2 ctrl shift f全局搜索 window byted acr
  • openCV无法打开USB摄像头问题

    用Python OpenCV 打开USB摄像头时 出现如下提示 意思是 媒体类型不匹配 测试源代码 cap cv2 VideoCapture 0 while cap isOpened start time time is opened fr
  • Python3 初学 DAY2

    num1 minute py minute 7 24 60 print minute num2 print py 注 显示颜色格式 033 显示方式 字体色 背景色m 033 0m 显示颜色参数 显示方式 效果 字体色 背景色 颜色描述 0
  • Python(4)list和tuple(类似js里的数组)

    6 list list其实就是js里的数组 放置在中括号里 用逗号分隔 就是数组的元素 例如 foo 1 2 3 print foo 1 2 3 len 访问list的长度 foo 1 2 3 print len foo 3 list n
  • centos7 pip3 安装python模块包报错解决

    centos7 pip3 安装python模块包报错 bash usr local bin pip3 usr local bin python3 6 坏的解释器 没有那个文件或目录 root localhost Python pip3 in
  • Python3 configparse模块(配置)

    Python3 configparse模块 配置 参考 https www cnblogs com bert227 p 9326313 html https www cnblogs com dion 90 p 7978081 html py
  • 如何在 CentOS/RHEL 8 上安装 Python 3.9

    Python 是一种功能强大且广泛使用的编程语言 以其简单性 可读性和跨 Web 开发 数据科学和机器学习等各个领域的多功能性而闻名 随着 Python 3 9 的发布 开发人员可以从众多增强 优化和新功能中受益 在本教程中 我们将指导您完
  • 如何在Python中修改dbf文件

    假设我在根目录下的一些文件夹中有不同数量的dbf文件 d myfolder dbf 文件的内容如下所示 Field1 11110481123 12150480021 我想添加一个字段 例如 Field1 仅包含值的最后 4 位Field2
  • VFP OleDb 的 Sql 参数化语法错误

    我正在尝试为 DBF 文件创建 SQL 参数化更新命令 Visual Fox Pro 我不知道为什么 但我在 DbCommand ExecuteNonQuery 上有一个 语法错误 异常错误消息是 语法错误 我没有任何额外的信息 strin
  • 如何在 SQL Server 中导入 DBF 文件

    如何在 SQL Server 中导入 FoxPro DBF 文件 使用链接服务器或使用 openrowset 例如 SELECT into SomeTable FROM OPENROWSET MSDASQL Driver Microsoft
  • Visual Fox Pro 和 Python

    我正在使用 Visual Fox Pro 数据库 dbf 文件 并且使用 dbf python 模块 这是一个例子 myDb VfpTable table dbf 现在我可以通过执行以下操作来排除已删除的项目 myDb use delete
  • 将 DBF 文件导入 Sql Server

    我需要一些帮助来解决这个问题 因为我是存储过程的新手 我正在尝试使用此存储过程将 DBF 表导入到 Sql Server 2008 中 CREATE PROCEDURE spImportDB Add the parameters for t

随机推荐

  • ubuntu 文件夹消失怎么办

    点击文件夹 xff0c 然后摁F9
  • ffmpeg花屏解决(修改源码,丢弃不完整帧和解码错误帧)

    linux下模拟丢帧的命令 因为帧之间的参考关系 实测如果是1 几乎没有完好的帧 tc只能对发出的包做处理 但它还可以做延时抖动处理 sudo tc qdisc add dev enp0s31f6 root netem loss span
  • 使用SDF对ROS-Gazebo中模型进行编辑修改

    什么是SDF文件 SDF是一种XML格式 xff0c 能够描述机器人 静态和动态物体 照明 地形甚至物理学的各方面的信息 SDF可以精确描述机器人的各类性质 xff0c 除了传统的运动学特性之外 xff0c 还可以为机器人定义传感器 表面属
  • Ubuntu16.04桌面图标消失

    项目场景 xff1a 提示 xff1a 这里简述项目相关背景 xff1a 例如 xff1a Ubuntu16 04用了挺久 问题描述 xff1a 提示 xff1a 这里描述项目中遇到的问题 xff1a Ubuntu16 04重启后 xff0
  • uni-app 半屏地图拖拽滚动底部半屏,仿高德搜索拖拽

    lt template gt lt view class 61 34 event help details 34 gt lt view class 61 34 back last page 34 style 61 34 39 top 39
  • 1、 Seata快速开始

    一 seata服务搭建 第一步 xff1a 下载seata安装包 我们通过https github com alibaba spring cloud alibaba wiki E7 89 88 E6 9C AC E8 AF B4 E6 98
  • CSDN-markdown编辑器(含源码.md文件)

    说明 CSDN新版Markdown编辑器 20190412 这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题 xff0c 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适
  • PS如何调整图片的大小

    快捷键Ctrl 43 Alt 43 i 一般会把纵横比勾选上
  • JAVA输入一个四位数的整数,要求编程将这个四位数中的个位,十位,百位,千位分别输出

    4 输入一个四位数的整数 xff0c 要求编程将这个四位数中的个位 xff0c 十位 xff0c 百位 xff0c 千位分别输出 1234 1 2 3 4 System out println 34 请输入四位数整数 xff1b 34 Sc
  • JAVA托运行李计算费用

    7 托运行李计算费用 xff1a 实验要求 xff1a xff08 1 xff09 货车在计算托运行李费用时以kg为单位计算费用 xff08 12元 kg xff09 xff0c 忽略重量中的小数部分 xff0c 即忽略不足1kg的部分 x
  • JAVA复制数组的三种方法

    public class test01 ArraysCopy public static void main String args 1 用for循环复制数组 int arr 61 1 2 3 4 5 6 7 8 9 int arr1 61
  • 如何把已安装的nodejs高版本降级为低版本

    windows如何把已安装的nodejs高版本降级为低版本 第一步 xff1a 先清空本地安装的node js版本 1 按健win 43 R弹出窗口 xff0c 键盘输入cmd 然后敲回车 xff08 或者鼠标直接点击电脑桌面最左下角的wi
  • SQL版本:多表连接查询(两张表为例)

    SQL版本 xff1a 数据准备 xff1a 创建一个数据库company CREATE DATABASE IF NOT EXISTS company 创建部门表 CREATE TABLE dept id INT PRIMARY KEY A
  • 【Redis 常用五大数据类型】

    常用五大数据类型 官方获取redis常见数据类型操作命令 xff1a http www redis cn commands html 1 Redis键 key keys 查看当前库所有key 匹配 xff1a keys 1 exists k
  • 【Mysql 基础知识】

    一 引言 1 1 现有的数据存储方式有哪些 xff1f Java程序存储数据 xff08 变量 对象 数组 集合 xff09 xff0c 数据保存在内存中 xff0c 属于瞬时状态存储 文件 xff08 File xff09 存储数据 xf
  • vue3 + vite + ts + setup , 第九练 自定义指令directive的使用,简单封装一个拖动指令

    除了 Vue 内置的一系列指令 比如 v model 或 v show 之外 xff0c Vue 还允许你注册自定义的指令 xff0c 一个自定义指令被定义为一个包含类似于组件的生命周期钩子的对象 钩子接收指令绑定到的元素 1 Vue3指令
  • MyBatis框架知识点总结

    一 引言 1 1 什么是框架 xff1f 框架 xff1a 框架使用你的 xff0c 而不是你在使用框架的 框架让我们提供什么信息 xff0c 配置信息 xff0c 数据库连接用户名密码等 xff0c 你必须提供 xff0c 还得按照框架要
  • AndroidStudio Unresolved reference

    在学习Kotlin过程中 xff0c 出现了两次在activity main xml中已注册id xff0c 但是在MainActivity kt中无法找到该Button的情况 后面发现是没有在build gradle中导入 39 koti
  • Spring学习(全)

    本文目录 1 Spring概述2 IOC 控制反转2 1 简单介绍2 2 Spring的第一个程序2 3 DI入门2 3 1 XML之set注入简单类型的set注入引用类型的set注入引用类型的自动注入autowire 2 3 2 XML之
  • Python3读写dbf文本

    Python3读写dbf文本 安装环境 pip install dbf 关于dbf的文档可以在一下网址了解dbf文档 https pythonhosted org dbf 还有github的地址 https github com ethan