[英]append new row with CSV path as a string object Python
我正在搜索如何在Python中向CSV追加新行。 我想要的是將路徑預定義為字符串對象。 我遇到了這個 :
import csv
fields=['first','second','third']
with open(r'name', 'a') as f:
writer = csv.writer(f)
writer.writerow(fields)
我想要的是在上面的實現中修改過的東西
path='home/user/new.csv'
import csv
fields=['first','second','third']
with open(rpath , 'a') as f:
writer = csv.writer(f)
writer.writerow(fields)
我似乎無法做到這一點,因為參數r出現在參數path之外。 有人可以指導如何做嗎?
在您引用的原始代碼段中, r
前綴告訴python將字符串視為原始字符串,並在字符串中保留反斜杠。 (有關詳細說明,請參閱https://docs.python.org/2/reference/lexical_analysis.html#string-literals )
所以r只能在像r'somestring'
這樣的字符串文字之前r'somestring'
前綴。
在您的示例中,您將變量名稱定義為path
。 但是后來您將其稱為rpath。 在代碼的任何地方都沒有定義rpath
。 因此它將引發錯誤。 您可以將其更改為
with open(path , 'a') as f:
讓我們假設下面是您的new.csv文件,並且您想要添加一行new_row
作為CSV的第四行:
$ cat new.csv
SN, Num1, Num2
1, one, two
2, three, four
3, five, six
下面的代碼可以做到這一點。
$ cat appendCsv2.py
#!/isr/bin/python3
import csv
new_row =['4', 'first','second','third']
with open('new.csv', 'a') as csvFile:
writer = csv.writer(csvFile)
writer.writerow(new_row)
csvFile.close()
所需的輸出:
$ cat new.csv
SN, Num1, Num2
1, one, two
2, three, four
3, five, six
4,first,second,third
別忘了關閉文件!
來自Python文檔優良作法是在處理文件對象時使用with關鍵字。 這樣做的好處是,即使在執行過程中引發了異常,文件在其套件完成后也將正確關閉。 它也比編寫等效的try-finally塊要短得多:
>>> with open('workfile', 'r') as f:
... read_data = f.read()
>>> f.closed
True
你是這個意思嗎
import csv
path='/home/user/new.csv'
fields=['first','second','third']
# To prevent newline by writerow(), open with newline=""
with open(path , 'a', newline="") as f:
writer = csv.writer(f)
writer.writerow(fields)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.