鱼C论坛

 找回密码
 立即注册
查看: 10890|回复: 7

[已解决]csv 格式中数字前面的0丢失问题

[复制链接]
发表于 2017-11-3 00:46:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. def csv_for_list(file='for_list.csv'):
  2.     with open(file,'w',newline='') as f:
  3.         fieldnames = ['number', 'string', 'money', 'date', 'float', 'percentage']
  4.         writer = csv.writer(f)
  5.         writer.writerow(fieldnames)
  6.         list_1 = ['01234567','a-zA-Z,字符串','129.00','1990-10','129.89','45%']
  7.         writer.writerow(list_1)
  8.         writer.writerows([list_1,list_1,list_1])
复制代码


使用 csv 模块,发现如果信息中有类似于“01234567”这种以0开头的字符串的时候,写入到 csv中会自动丢失前面的0,这个好像是csv本的问题,有没有方法可以解决这个问题?(不要说写到Excel里面)
最佳答案
2017-11-3 09:09:01
在以0开头的前面加上单引号 ' 强调这是一个字符串
比如
lst = ["'01234", "'01234123"]
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-11-3 09:09:01 | 显示全部楼层    本楼为最佳答案   
在以0开头的前面加上单引号 ' 强调这是一个字符串
比如
lst = ["'01234", "'01234123"]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-3 09:54:36 | 显示全部楼层
本帖最后由 小锟 于 2017-11-3 09:56 编辑

pandas读取csv可以指定各列的类型
不知道写会不会丢失
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-3 10:51:06 | 显示全部楼层
  1. with open('test.csv','w')as w:
  2.     wr=csv.writer(w)
  3.     wr.writerow(["'01234","012345"])

  4. with open('test.csv','r')as r:
  5.     for row in csv.reader(r):
  6.         print(row)

  7.                
  8. #["'01234", '012345']
  9. #[]
复制代码


并没有丢~
只是看你如何读取并转换数据类型~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-3 11:32:14 | 显示全部楼层
SixPy 发表于 2017-11-3 10:51
并没有丢~
只是看你如何读取并转换数据类型~

所以重点就是在0前面加上一个'就行了
这个办法挺好的,也比较方便
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-3 11:33:19 | 显示全部楼层
BngThea 发表于 2017-11-3 09:09
在以0开头的前面加上单引号 ' 强调这是一个字符串
比如
lst = ["'01234", "'01234123"]


这个技巧居然没有写在官方文档中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-3 11:35:04 | 显示全部楼层
小锟 发表于 2017-11-3 09:54
pandas读取csv可以指定各列的类型
不知道写会不会丢失

我现在主要是要写入,而且是在测试各种数据类型的写入情况
pandas 毕竟是第三方库,csv 是内置库比较方便,也常用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-3 11:45:24 | 显示全部楼层
gopythoner 发表于 2017-11-3 11:32
所以重点就是在0前面加上一个'就行了
这个办法挺好的,也比较方便

这是excel的标准
csv默认是excel格式
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-3 15:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表