python在标头下面创建了一个意外的空白行



下面的代码创建csv文件,然后向其中添加随机数据。

不知怎的,代码的第一部分在标题下面创建了一个空行。

有人能帮助修复代码以删除这一空白行吗?

谢谢你,

哈雷

header_list = ["Firm", "hour", "unit sold", "product code", "dollar value"]
for i in range(3):
# create file with header -----------
with open(f'D:\2000 transactions\location_id_' + str(i) + '.csv', 'w',  newline='') as file:
dw = csv.DictWriter(file, delimiter=',',fieldnames=header_list)
dw.writeheader() # this line create a blank row below header

# adding data to file ---------------
for j in range(5):
n = random.randint(1, 99)
text = str(str(sp100_list['Name'].loc[n]) + ',' + str(random.randint(5, 20)) + ',' + str(random.randint(200, 1000)) + ',' + str(
random.randint(100, 150)) + ',' + str(int(random.random() * 1000000)))
myfile = open(f'D:\2000 transactions\location_id_' + str(i) + '.csv', 'a')
myfile.write('n' + text)

实际上,您在myfile.write('n' + text)行中添加了意外的空白行,而不是dw.writeheader()行。您先添加一个n,它会在文件中添加一个空行。将n向后移动应该可以解决问题。

代码:

import csv
header_list = ["Firm", "hour", "unit sold", "product code", "dollar value"]
for i in range(1):
with open(f'test{str(i)}.csv', 'w',  newline='') as file:
dw = csv.DictWriter(file, delimiter=',',fieldnames=header_list)
dw.writeheader() # this line create a blank row below header
for j in range(5):
with open(f'test{str(i)}.csv', 'a',  newline='') as myfile:
text = "1,1"
myfile.write(text+'n')

结果:

Firm,hour,unit sold,product code,dollar value
1,1
1,1
1,1
1,1
1,1

您只能使用csv写入程序而不是DictWriter。以下是示例
使用csv写来写入标题和行

header_list = ["Firm", "hour", "unit sold", "product code", "dollar value"]
for i in range(3):
#create writer here
with open(f'tmp_' + str(i) + '.csv', 'w') as file:
writer = csv.writer(file, delimiter=',')
#write header
writer.writerow(header_list) 
# adding data to file ---------------
for j in range(5):
n = random.randint(1, 99)
writer.writerow([sp100_list['Name'].loc[n],random.randint(5, 20),
random.randint(200, 1000),random.randint(100, 150),
int(random.random() * 1000000)])

相关内容

最新更新