CSV清除纸条中的TypeError

2024-10-02 00:44:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我在设计从CSV文件中删除指定行和列的脚本时遇到问题。以下是我目前的剧本:

import csv
with open ("E:\\CSULB Grad\\2016 Spring\\Geog 588\\Project\\ACS_14_5YR_B02001_Copy.csv","rb") as csvfile:
    reader=csv.reader(csvfile)
with open ("E:\\CSULB Grad\\2016 Spring\\Geog 588\\Project\\ACS_14_5YR_B02001_Copy.csv","ab+") as csvfile2:
    writer=csv.writer(csvfile2)
    for row in csvfile2:
        del row['HD02_VD01']
        writer.writerow(row)

以下是我得到的回溯错误:

Traceback (most recent call last):
  File "C:\Python27\ArcGIS10.3\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 326, in RunScript
    exec codeObject in __main__.__dict__
File "E:\CSULB Grad\2016 Spring\Geog 588\Project\Script2.py", line 7, in <module>
    del row['HD02_VD01']
TypeError: 'str' object does not support item deletion

Tags: csvinprojectwithopenwriterrowcopy
1条回答
网友
1楼 · 发布于 2024-10-02 00:44:02

在迭代CSV文件时,不能就地修改它。考虑创建一个新的CSV文件,只写入原始文件中每行所需的列。你知道吗

例如:

    with open(path,"wb") as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames = fieldNames)
        for row in csvfile2:
            writer.writerow({"Col1":row['...'],"Col2":row['...']})

相关问题 更多 >

    热门问题