Python修改DBF檔案指定列

2022-08-14 01:24:12 字數 2309 閱讀 5082

一、需求:

某公司每日收到一批dbf檔案,a系統實時處理後將其中dealstat欄位置為1(已處理)。現在每日晚間b系統也需要處理該檔案,因此需將檔案中dealstat欄位修改為空(未處理)。

二、分析:

1、應建立副本進行修改

解答:使用shutil.copy

2、修改dbf

解答:使用dbf模組。此模組能找到的文件比較舊,需要結合**進行理解。

三、**實現:

1

#!/usr/bin/env python2#

_*_ coding:utf-8 _*_34

5"""

6@time : 2020-01-15 10:43

7@author : peanut_c

8@filename: dbf_modifier.py

9"""

1011

import

os12

import

time

13import

shutil

14import

dbf15

1617 source_dir = r'

d:\'

18 destination_dir = r'

e:\'

1920

"""刪除目標資料夾內舊檔案

"""21

os.chdir(destination_dir)

22for file in

os.listdir(destination_dir):

23os.remove(file)

24print('

info ===>>> 歷史檔案刪除完成!\n')

2526

"""檔案拷貝任務

"""27

os.chdir(source_dir)

28for file in

os.listdir(source_dir):

29shutil.copy(file, destination_dir)

30print('

info ===>>> 今日檔案拷貝完成!\n')

3132

"""dbf修改任務

"""33

os.chdir(destination_dir)

34for file in

os.listdir(destination_dir):

35 tb = dbf.table(file) #

建立tb例項36#

print(tb) # 列印tb資訊

37 titles = dbf.get_fields(file) #

將表頭以列表形式列印出來38#

print(titles)

39if

'dealstat'in

titles:

40 flag = 0 #

檔案修改標記

41 tb.open(mode=dbf.read_write) #

讀寫方式開啟tb

42for record in

tb:43

with record as r:

44if r.dealstat is

notnone:45#

print(r.dealstat)

46 r.dealstat = ''

47 flag = 1 #

修改後將標記改為148#

print(r.dealstat)

49else:50

continue51#

print(record.dealstat)

52tb.close()

53if flag ==0:

54print(file + "

===>>>沒有要修改的資料!\n")

55else:56

print(file + "

===>>>dealstat欄位修改完畢!\n")

57else:58

print(file + "

===>>>沒有dealstat欄位!\n")

5960

print('

info ===>>> 今日檔案修改完畢!\n

')

四、運**況:

執行程式,首先清空目標目錄,然後建立檔案副本,最後依次處理目錄中的dbf檔案。

雖是個簡單的功能,但可節省不少時間,依此類推可對dbf進行其他修改。

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

多多指教!

匯出dbf 檔案

匯出dbf 檔案 jsp頁面 請選擇變動原因 儲存 dbf資料匯出 js exportdbfbd click function success function filedownloadpath top.messager.alert 系統提示 匯出成功!info filedownloadpath 房...

DBF檔案格式

在一次匯出為dbf格式的編碼過程中,發現匯出的中文標題都是5個字,故特意研究一下dbf檔案的格式,看來還真是,欄位名稱最多支援5個漢字,再多了dbf就不管了,因為dbf格式的檔案只為欄位名留了11個位元組。1.總的檔案格式 檔案頭記錄1 記錄2 記錄n 2.檔案頭格式 在檔案中的位置 內容 說明0 ...

python 複製 移動檔案到指定目錄並修改名字

基本思路 1 確定指定目錄 2 判斷指定目錄是否存在,如果不存在就新建該目錄 3 修改新的檔名 4 複製到指定位置,如果需要移動採用 shutil.move origin path,new file name import os import shutil base dir os.path.dirn...