states = ['Michigan', 'California', 'Louisiana']
numbers = ['00','10','00']
我的输入是通过使用
for x,y in zip(states,numbers):
print(f'{x},{y}')
输出:
Michigan,00
California,10
Louisiana,00
此输出保存为csv文件,但当我打开csv文件时,它会显示以下内容:
Michigan 0
California 10
Louisiana 0
在两个单独的列中向我展示了这一点,状态在第一列,数字在第二列。数字不是一个字符串,需要在数字列中放在一起
它在csv文件中应该是这样的:
Michigan 00
California 10
Louisiana 00
我使用以下方式将数据写入csv:
file_data= ""
for x, y in zip(states,numbers):
file_data += f"{x},{y} \n "
#create a new file
with open("states_num.csv", "w") as f:
f.write(file_data)
打开。。。在excel中?这不是您的实际文件内容,因为您在输出中写入了逗号
csv文件中没有保存类型信息。因此,Excel决定以任何方式读取和显示数据,您不应该依赖GUI来告诉您人类可读文本文件中的实际内容
如果要使用类型信息保存excel文件,则不要使用CSV编写器
您不需要该代码,因为您已经有两个字符串列表,您的zip()循环可以使用它们来配对元素
如果
numbers
(因此y
)中的数字是整数,f"{x},{y} \n "
将不使用零填充写入它们要使用f字符串和零填充进行写入,请使用带有0前缀的格式:
其中
2
是要填充的位置数收集列表中的所有行}(和
lines
和''.join(lines)
比使用+=
更有效^字符串的{bytes
)在Python中有点棘手,因为它并没有真正改变LHS,而是创建一个新字符串,将LHS和RHS连接起来,并对其赋值相关问题 更多 >
编程相关推荐