我在一个目录中有很多文件,比如['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)发布于 2019-03-20 16:54:41
请考虑以下几点:
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 (这是一个保留关键字,所以尽量不要使用它),因为我看不到它在这里的用途。
发布于 2019-03-22 15:55:59
现在差不多可以工作了。但是头文件写的是每个文件。我只想让头在第一次写出来。如何每次跳过头部?
https://stackoverflow.com/questions/55255829
复制相似问题