Python修改DBF文件指定列

 更新时间:2020年12月19日 10:49:02   作者:Peanut_C  
这篇文章主要介绍了Python修改DBF文件指定列的实现,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下

一、需求:

  某公司每日收到一批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+OpenCV实现图像识别替换功能详解

    Python+OpenCV实现图像识别替换功能详解

    OpenCV-Python是一个Python库,旨在解决计算机视觉问题。本文将利用Python+OpenCV实现图像识别替换功能,感兴趣的小伙伴可以动手尝试一下
    2022-07-07
  • Python实现GPU加速的基本操作

    Python实现GPU加速的基本操作

    本文简单介绍了Python实现GPU加速的基本操作,文中运用大量代码讲解的非常详细,有一定的参考价值,需要学习相关知识的小伙伴一起来看看吧
    2021-08-08
  • python处理列表的部分元素的实例详解

    python处理列表的部分元素的实例详解

    在本篇文章里小编给大家整理的是一篇关于python处理列表的部分元素的实例详解内容,有兴趣的朋友们可以学习下。
    2021-09-09
  • Python爬虫实现vip电影下载的示例代码

    Python爬虫实现vip电影下载的示例代码

    这篇文章主要介绍了Python爬虫实现vip电影下载的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • python next()和iter()函数原理解析

    python next()和iter()函数原理解析

    这篇文章主要介绍了python next()和iter()函数原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python中将字符串变成数字的5种方法示例

    Python中将字符串变成数字的5种方法示例

    Python提供了多种方式来转换字符串为数字类型,但是每一种方式都有其优缺点,这篇文章主要介绍了Python中将字符串变成数字的5种方法,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • 老生常谈python字典用法

    老生常谈python字典用法

    python 创建字典可以使用 dict 函数,或者使用花括号,用花括号的方式更为常见。本文给大家介绍python字典用法,感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • tensorflow如何批量读取图片

    tensorflow如何批量读取图片

    这篇文章主要为大家详细介绍了tensorflow如何批量读取图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Python报错:NameError: name ‘xxx‘ is not defined的解决办法

    Python报错:NameError: name ‘xxx‘ is not defined的解决办法

    这篇文章主要给大家介绍了关于Python报错:NameError: name ‘xxx‘ is not defined的解决办法,文中通过代码介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-06-06
  • python retrying模块的使用方法详解

    python retrying模块的使用方法详解

    这篇文章主要介绍了python retrying模块的使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09

最新评论