我的CSV文件没有注册,我的代码中有一个字符串,如何修复?

2024-09-27 04:11:56 发布

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

enter image description here 输入:

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)

Tags: 文件csvinfordata状态数字zip
2条回答

when I open the csv file it shows me this:

打开。。。在excel中?这不是您的实际文件内容,因为您在输出中写入了逗号

csv文件中没有保存类型信息。因此,Excel决定以任何方式读取和显示数据,您不应该依赖GUI来告诉您人类可读文本文件中的实际内容

如果要使用类型信息保存excel文件,则不要使用CSV编写器

my lists were converted into a string

您不需要该代码,因为您已经有两个字符串列表,您的zip()循环可以使用它们来配对元素

如果numbers(因此y)中的数字是整数,f"{x},{y} \n "将不使用零填充写入它们

要使用f字符串和零填充进行写入,请使用带有0前缀的格式:

file_data= ""
for x, y in zip(states,numbers):
    file_data += f"{x},{y:02} \n "

其中2是要填充的位置数

收集列表中的所有行lines''.join(lines)比使用+=更有效^字符串的{}(和bytes)在Python中有点棘手,因为它并没有真正改变LHS,而是创建一个新字符串,将LHS和RHS连接起来,并对其赋值

相关问题 更多 >

    热门问题