Python修改DBF文件指定列


Posted in Python onDecember 19, 2020

一、需求:

某公司每日收到一批DBF文件,A系统实时处理后将其中dealstat字段置为1(已处理)。现在每日晚间B系统也需要处理该文件,因此需将文件中dealstat字段修改为空(未处理)。

二、分析:

1、应创建副本进行修改

解答:使用shutil.copy

2、修改DBF

解答:使用dbf模块。此模块能找到的文档比较旧,需要结合代码进行理解。 

三、代码实现:

#!/usr/bin/env python
# _*_ coding:utf-8 _*_


"""
@Time  : 2020-01-15 10:43
@Author : Peanut_C
@FileName: DBF_Modifier.py
"""

import os
import time
import shutil
import dbf


source_dir = r'D:\'
destination_dir = r'E:\'

"""删除目标文件夹内旧文件"""
os.chdir(destination_dir)
for file in os.listdir(destination_dir):
  os.remove(file)
print('INFO ===>>> 历史文件删除完成!\n')

"""文件拷贝任务"""
os.chdir(source_dir)
for file in os.listdir(source_dir):
  shutil.copy(file, destination_dir)
print('INFO ===>>> 今日文件拷贝完成!\n')

"""DBF修改任务"""
os.chdir(destination_dir)
for file in os.listdir(destination_dir):
  tb = dbf.Table(file) # 创建tb实例
  # print(tb) # 打印tb信息
  titles = dbf.get_fields(file) # 将表头以列表形式打印出来
  # print(titles)
  if 'dealstat' in titles:
    flag = 0 # 文件修改标记
    tb.open(mode=dbf.READ_WRITE) # 读写方式打开tb
    for record in tb:
      with record as r:
        if r.dealstat is not None:
          # print(r.dealstat)
          r.dealstat = ''
          flag = 1 # 修改后将标记改为1
          # print(r.dealstat)
        else:
          continue
      # print(record.dealstat)
    tb.close()
    if flag == 0:
      print(file + "===>>>没有要修改的数据!\n")
    else:
      print(file + "===>>>DealStat字段修改完毕!\n")
  else:
    print(file + "===>>>没有DealStat字段!\n")

print('INFO ===>>> 今日文件修改完毕!\n')

四、运行情况:

运行程序,首先清空目标目录,然后创建文件副本,最后依次处理目录中的DBF文件。

虽是个简单的功能,但可节省不少时间,依此类推可对DBF进行其他修改。

希望能帮到有需要的朋友。

多多指教!

以上就是Python修改DBF文件指定列的详细内容,更多关于Python修改DBF文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
使用Python的Zato发送AMQP消息的教程
Apr 16 Python
Python+微信接口实现运维报警
Aug 27 Python
一个基于flask的web应用诞生(1)
Apr 11 Python
Python中模块与包有相同名字的处理方法
May 05 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
用Python登录好友QQ空间点赞的示例代码
Nov 04 Python
python+opencv实现的简单人脸识别代码示例
Nov 14 Python
Python3 中文文件读写方法
Jan 23 Python
python 实现查询Neo4j多节点的多层关系
Dec 23 Python
Python requests获取网页常用方法解析
Feb 20 Python
ASP.NET Core中的配置详解
Feb 05 Python
matplotlib画混淆矩阵与正确率曲线的实例代码
Jun 01 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 #Python
Python+Xlwings 删除Excel的行和列
Dec 19 #Python
python Zmail模块简介与使用示例
Dec 19 #Python
python中实现栈的三种方法
Dec 19 #Python
python中实现词云图的示例
Dec 19 #Python
python 实现图片批量压缩的示例
Dec 18 #Python
python 基于opencv实现高斯平滑
Dec 18 #Python
You might like
PHP4实际应用经验篇(3)
2006/10/09 PHP
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
js的写法基础分析
2011/01/17 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
ES6通过babel转码使用webpack使用import关键字
2016/12/13 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
React如何避免重渲染
2018/04/10 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
教大家使用Python SqlAlchemy
2016/02/12 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
Python中顺序表原理与实现方法详解
2019/12/03 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
优秀教师获奖感言
2014/01/31 职场文书
房屋租赁意向书
2014/04/01 职场文书
2014年财政工作总结
2014/12/10 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
婚礼答谢词范文
2015/09/29 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python