我在目录中有很多文件,例如['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)
答案 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)
现在几乎可以工作。但是标题为每个文件写。我只想标题第一次写。如何每次都跳过标题?