簡體   English   中英

我如何使用python-dbf模塊比for循環更快地將很多csv轉換為dbf?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM