gpt4 book ai didi

python - 将 .csv 数据重写到文件会在 python 中创建人工第一列

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:13 27 4
gpt4 key购买 nike

我正在从多个 REST 端点获取 csv 数据,尝试向数据添加列标题,并将数据中的分隔符从分号 (;) 更改为逗号 (,),以便 Excel 可以正确设置它们的格式。

请注意:下面代码中的 x 是链接 URI 的列表,省略号替换用于发现和拉取链接的代码。

from bs4 import BeautifulSoup
import openpyxl
from html.parser import HTMLParser
from urllib.request import urlopen
from urllib import parse
import logging
import csv
...
...
for link in links:
linkContent = urlopen(link)
htmlBytes = linkContent.read()
htmlString = htmlBytes.decode("utf-8")
targetFile = open(str(x[link]) + '.csv', 'w')
targetFile.write('Date;StartTime;EndTime;Environment;Domain;DeployID;Module;Status;BuildVersion;DeployType;DeployStart\n')
targetFile.write(htmlString)
targetFile.close()

for file in x:
with open(str(x[file]) + '.csv', newline='') as csvFile:
reader = csv.reader(csvFile,delimiter=";")
data = [line for line in csvFile]

datalen= len(data)
for i in range(datalen):
data[i] = data[i].replace(";", ",")
data[i] = data[i].replace(" ","")

with open(str(x[file]) + '.csv', 'w') as csvFile:
w=csv.writer(csvFile,delimiter=',',quoting=csv.QUOTE_NONE,escapechar=' ')
w.writerows([data])

不幸的是,这会在第一行之后的每一行之前产生一个不必要的逗号,我不确定为什么。

日期,开始时间,结束时间...
, 2016-07-12 ,03:11 ,03:21 , ...

这会让 Excel 显示第一行的所有空白,并开始显示后面行中的数据。本质上是将所有数据向右移动一行。

在我试图正确解析代码时,代码中可能存在一些不必要的参数和/或参数。

提前致谢。

最佳答案

手动添加,到文件中将导致列对齐问题,因为手动插入 , s 将与 csv.writer 插入的冲突。作为分隔符。

更改分隔符 ;,不需要额外的replace(";", ",") 。更改 csv.reader 中的分隔符就足够了。和writer对象。

以下内容应该符合您的预期:

for file in x:
with open(str(x[file]) + '.csv', newline='') as csvFile:
reader = csv.reader(csvFile, delimiter=";")
data = [row for row in reader]
# ^^^^^^ use reader not csvFile

with open(str(x[file]) + '.csv', 'w') as csvFile:
w=csv.writer(csvFile, delimiter=',', quoting=csv.QUOTE_NONE,escapechar=' ')
w.writerows(data)

关于python - 将 .csv 数据重写到文件会在 python 中创建人工第一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38336278/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com