[英]Remove the last comma in a csv file linux
cdp_data.csv
1
2
3
4
所以我正在制作這款csv處理器。 當我在Windows上編譯它時,在csv內的行的末尾沒有“,”。 但是,當我在服務器上運行它時,行中有一個額外的“,”。 他們有相同的python版本。
#!/usr/bin/python
import re
import datetime
now = datetime.datetime.now()
day_minus_one = now + datetime.timedelta(days=-1)
new_date = day_minus_one.strftime('%Y%m%d')
f = open('/tmp/cdp_data.csv','rb')
fo = open('/tmp/cdp_out.csv','wb')
fo.writelines("{},".format(new_date))
for line in f:
bits = line.split(',')
bits[0] = re.sub(r'\n', ",", bits[0])
bits[0] = re.sub(r'\r', "", bits[0])
fo.write( ','.join(bits) )
f.close()
fo.close()
Windows結果:
20170329,1,2,3,4
Linux結果:
20170329,1,2,3,4,
如果您真的想要對CSV進行硬編碼,請使用bits = line.strip().split(',')
。 strip()
方法刪除尾隨空格,並消除列表末尾的空字符串。
否則,建議的方法是使用csv模塊自動處理所有讀取,寫入和解析。
import csv
with open('/tmp/cdp_data.csv', newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
with open('/tmp/cdp_out.csv', 'w', newline='') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=',',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
for row in spamreader:
spamwriter.writerow(row)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.