[英]How can I convert a lot of csv to dbf with python-dbf module faster way than for loop?
我是Python新手,但我想通過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])
有沒有更快的方法來解決這個問題?
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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.