无法让python替换csv中的行(而是创建新行)

时间:2018-10-18 12:59:12

标签: python python-3.x function csv row

def deletedata(uniquecode):
    with open('Stallingsbestand.csv', 'r+') as CSV:
        writer = csv.writer(CSV, delimiter=';')
        for row in CSV:
             if uniquecode in row:
                 writer.writerow((uniquecode, ''))
Stallingsbestand.csv中的

由看起来像这样的行组成:

uniquecode;Date_of_last_opening_a_function

我希望能够删除上次开放的日期,并在那里保留唯一的代码。

(在行尾附加False也可以,但是我不知道哪个更容易)

我认为仅覆盖该行是最简单的,但我无法使其正常工作。有谁知道该怎么做?

1 个答案:

答案 0 :(得分:1)

您要将文件重命名为Stallingsbestand.old,并写出新版本的Stallingsbestand.csv。一种执行此操作的方法是,在循环中将修改过的行从csv.reader复制(有时)从csv.writer复制到pandas.read_csv(),类似于您当前的代码。

您可能会发现,使用pandas.to_csv()创建一个内存中数据帧,更改其行之一,然后使用C:\Python\Python37-32\python.exe C:\Coding\Codecademy\Python\one.py保留它更为方便。

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html