0

在过去的 3 个月里,我运行了一个 Python 脚本。简单的抓取工具,它抓取当天收集的日期、点和当前时间,并使用DictWriter.

错误的原因

昨天,我不得不打开 CSV(使用 Apple 默认的 Numbers 应用程序)并删除最近输入的日期、点数和时间。从那时起,它一直将新条目附加到前一行,创建额外的列。我没有编辑任何代码。

让我尝试创建问题的视觉效果:

错误前的 CSV 格式

第一行是标题

| Date   | Points | Time Completed |
| Mar 29 | 15141  | 08:55 AM       |
| Mar 30 | 15411  | 08:56 PM       |
| Mar 31 | 15681  | 11:08 AM       |
| Apr 01 | 15911  | 10:40 AM       |

编辑后的 ​​CSV 格式

| Date   | Points | Time Completed  |       |          |
| Mar 29 | 15141  | 08:55 AM        |       |          |
| Mar 30 | 15411  | 08:56 PM        |       |          |
| Mar 31 | 15681  | 11:08 AM        |       |          |
| Apr 01 | 15911  | 10:40 AMApril02 | 16276 | 07:57 PM |

代码

我没有更改之前/之后的任何代码。

def write_csv(points):
    headers = ['Date', 'Points', 'Time completed']
    today = date.today().strftime("%B %d")
    now = datetime.now().strftime("%I:%M %p")
    with open('/Users/Shared/PointsTracker.csv', 'a') as PointsTracker:
        writer = csv.DictWriter(PointsTracker, fieldnames=headers)
        
        writer.writerow({
            headers[0]: today,
            headers[1]: points,
            headers[2]: now
        })
4

1 回答 1

0

编辑文件时删除了尾随换行符。编辑文件并将其放回原处。

于 2021-04-04T19:12:11.690 回答