簡體   English   中英

Python,CSV編寫器功能

[英]Python, csv writer function

我創建了一個csv函數,該函數應要求使用指定的csv分隔符將文件路徑和X個字符串數寫入文件。

def WRITE_csv(csv_path,*args):
    with open(csv_path, "ab") as f:
        csv_list=csv.writer(f,delimiter='|')

        csv_string=""
        for arg in args:
            csv_string=csv_string+","+arg

        csv_string=csv_string[1:]

        csv_list.writerow([csv_string])

問題是csv模塊正在編寫,而不是|


作為一個bonnus,我想替換:

        csv_string=""
        for arg in args:
            csv_string=csv_string+","+arg

具有單行功能

csv_string="".format(','.join(arg for arg in args))

但是它總是給我一個空字符串!

您在分隔符的值中混淆了文字 ,字符串。 您只在寫一欄

csv_list.writerow([csv_string])

因此, csv.writer()永遠不會導致| 中沒有定界符,因為沒有第二列要定界。 您傳入了一個完整的字符串csv_string作為一個單值列表,因此很自然地將其視為唯一的列。 該模塊不會再次分裂的逗號的字符串。

將分隔符留給編寫者:

def WRITE_csv(csv_path, *args):
    with open(csv_path, "ab") as f:
        csv_list=csv.writer(f,delimiter='|')    
        csv_list.writerow(args)

換句話說, args 已經是 csv.writerow()調用的正確類型 ,您無需在此處進行轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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