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实现bitmap数据结构详解
Feb 17 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 Python
Python实现分段线性插值
Dec 17 Python
python flask 如何修改默认端口号的方法步骤
Jul 12 Python
Django中的静态文件管理过程解析
Aug 01 Python
Python ATM功能实现代码实例
Mar 19 Python
Django form表单与请求的生命周期步骤详解
Jun 07 Python
Python如何用wx模块创建文本编辑器
Jun 07 Python
python利用xlsxwriter模块 操作 Excel
Oct 14 Python
重构Python代码的六个实例
Nov 25 Python
Python爬虫实战之爬取携程评论
Jun 02 Python
Python办公自动化解决world文件批量转换
Sep 15 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
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
2014/06/19 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
JavaScript的parseInt 取整使用
2011/05/09 Javascript
JS的replace方法介绍
2012/10/20 Javascript
javascript标签在页面中的位置探讨
2013/04/11 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
2013/06/28 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
jQuery匹配文档链接并添加class的方法
2015/06/26 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
Python中对列表排序实例
2015/01/04 Python
Python在线运行代码助手
2016/07/15 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
Python实现FLV视频拼接功能
2020/01/21 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
优秀班主任材料
2014/12/16 职场文书
投资合作意向书范本
2015/05/08 职场文书
机器人总动员观后感
2015/06/09 职场文书
《穷人》教学反思
2016/02/19 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书