如何用pythondbf模块比for循环更快地将大量csv转换为dbf?

2024-09-29 01:39:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python中的beginer,但我想通过python-dbf module将大量csv文件转换为dbf。csv文件有不同的名称,我想得到与csv同名的dbf。我尝试通过以下方式使用for循环执行此问题:

x1 = 'path/to/csv/a.csv'
x2 = 'path/to/csv/b.csv'
x3 = 'path/to/csv/c.csv'
y1 = 'a.dbf'
y2 = 'b.dbf'
y3 = 'c.dbf'
x = [x1,x2,x3]
y = [y1, y2, y3]
for z in range (0,3) : table = dbf.from_csv(x[z], y[z])

有没有更快的方法来解决这个问题?在


Tags: 文件csvtopath名称formodulex1
1条回答
网友
1楼 · 发布于 2024-09-29 01:39:05
def conv(file_path)
    file_name = os.path.basename(file_path)
    file_name_without_ext = os.path.splitext(file_name)[0]
    dbf_file_name = file_name_without_ext + ".dbf"
    return dbf_file_name

def dbf_from_csv(f):
    dbf.from_csv(f, conv(f))

# slow version
for f in x:
    table = dbf.from_csv(f, conv(f))

# quick version - use multiprocessing:
from multiprocessing import Pool

p = Pool() # see docs for how many processes this will launch
p.map(dbf_from_csv, x)
p.close()
p.join()

相关问题 更多 >