【问题标题】:delete last blank row csv file删除最后一个空白行 csv 文件
【发布时间】:2021-09-29 18:20:25
【问题描述】:

我有一个 csv 文件,我想在其中更改写入的数据。但是在写入数据时,我在文件末尾得到一个空行。如何删除最后一个空行?

import csv
accounts = []
account = []
sep = ";"
#get data to accounts
with open(filename, 'r') as csvfile:
    csvreader = csv.reader(csvfile)
    for row in csvreader:
        text = [row]
        uncuttext = sep.join(row)
        account = uncuttext.split(sep)
        accounts.append(account)

#edit data
def edit(position: str, rate: float):
    for x in range(len(accounts)):
        plat = float(ucty[x][5])
        if accounts[x][7] == position:
            plat = round(plat * rate)
            accounts[x][5] = str(plat)


#save data
def save():
    with open(filename, 'w', newline='') as csvfile:
        csvwriter = csv.writer(csvfile, delimiter=sep, quoting=csv.QUOTE_NONE)
        csvwriter.writerows(accounts)

我试过How write csv file without new line character in last line?,但没用。

【问题讨论】:

  • 您应该确保区分最后一行空白和最后一行的行终止符。您如何验证这是一个问题?

标签: python csv


【解决方案1】:

你指的是这样的东西吗?

1,truck,purple
2,car,red
3,van,blue
--blank line

尝试这样的方法,从读入的最后一条记录中删除换行符。

with open(filename, 'r') as csvfile:
    lines = csvfile.readlines()
    last_line = lines[len(lines)-1]
    lines[len(lines)-1] = last_line.rstrip()
    for row in lines:
        ....

....

#save data
def save():
    with open(filename, 'w', newline='', escapechar='', lineterminator='') as csvfile:
        ....

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-04
  • 1970-01-01
  • 2017-09-01
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多