将dbf文件附加到一个dbf文件

时间:2019-03-20 07:50:21

标签: python python-2.x arcpy

我在目录中有很多文件,例如['FredrikstadAvst1.dbf', 'FredrikstadAvst2.dbf', ...]。我想编写一个Python脚本,将这些文件连接成一个新的"*.dbf"文件。

我有一个几乎可以完成工作的Python脚本。但是在输出文件上,它始终覆盖。因此,当作业完成时,输出文件仅包含我目录中的最后一个文件。

这是我的剧本:

import os, glob, shutil

folder_path = r'C:\Tom\Oppdrag_2019\Pendle\2018'
for filename in glob.glob(os.path.join(folder_path, '*.dbf')):

    fd = open(filename, 'r')

    List = []
    List.append(fd)

    print filename
wfd = open(r"C:\Tom\Oppdrag_2019\Pendle\FredrikstadAvst.dbf",'a')
shutil.copyfileobj(fd, wfd, 1024*1024*10)

2 个答案:

答案 0 :(得分:0)

请考虑以下内容:

import os, glob, shutil

folder_path = r'C:\Tom\Oppdrag_2019\Pendle\2018'
wfd = open(r"C:\Tom\Oppdrag_2019\Pendle\FredrikstadAvst.dbf",'w')
for filename in glob.glob(os.path.join(folder_path, '*.dbf')):
    fd = open(filename, 'r')
    shutil.copyfileobj(fd, wfd, 1024*1024*10)
    fd.close()
wfd.close()

通过在循环之前打开文件,并且仅在遍历每个dbf文件之后关闭文件,才不应覆盖该文件。我删除了List(这是一个保留关键字,请不要使用它),因为在这里看不到它的用途。

答案 1 :(得分:0)

现在几乎可以工作。但是标题为每个文件写。我只想标题第一次写。如何每次都跳过标题?