csv格式(csv格式是什么意思)
怎么利用python解决csv文件读写乱码问题?今天番茄加速就来说一下。
首先,导入3个模块:
# coding: utf-8
# @author: zhenguo
# @date: 2020-12-16
# @describe: functions about automatic file processing
import pandas as pd
import os
import chardet
chardet 模块用于得到文件的编码格式,pandas 按照这个格式读取,然后保存为xlsx格式。
获取filename文件的编码格式:
def get_encoding(filename):
"""
返回文件编码格式
"""
with open(filename,'rb') as f:
return chardet.detect(f.read())['encoding']
保存为utf-8编码xlsx格式文件,支持csv, xls, xlsx
格式的文件乱码处理。需要注意,如果读入文件为csv格式,保存时要使用xlsx格式:
def to_utf8(filename):
"""
保存为 to_utf-8
"""
encoding = get_encoding(filename)
ext = os.path.splitext(filename)
if ext[1] =='.csv':
if 'gb' in encoding or 'GB' in encoding:
df = pd.read_csv(filename,engine='python',encoding='GBK')
else:
df = pd.read_csv(filename,engine='python',encoding='utf-8')
df.to_excel(ext[0]+'.xlsx')
elif ext[1]=='.xls' or ext[1] == '.xlsx':
if 'gb' in encoding or 'GB' in encoding:
df = pd.read_excel(filename,encoding='GBK')
else:
df = pd.read_excel(filename,encoding='utf-8')
df.to_excel(filename)
else:
print('only support csv, xls, xlsx format')
上面函数实现单个文件转化,下面batch_to_utf8 实现目录 path 下所有后缀为ext_name文件的批量乱码转化:
def batch_to_utf8(path,ext_name='csv'):
"""
path下,后缀为 ext_name的乱码文件,批量转化为可读文件
"""
for file in os.listdir(path):
if os.path.splitext(file)[1]=='.'+ext_name:
to_utf8(os.path.join(path,file))
调用:
if __name__ == '__main__':
batch_to_utf8('.') # 对当前目录下的所有csv文件保存为xlsx格式,utf-8编码的文件
文件读写时乱码问题,经常会遇到,相信今天这篇文章里的to_utf8,batch_to_utf8函数会解决这个问题,你如果后面遇到,不妨直接引用这两个函数尝试下。
python的pandas库是进行数据分析或文本处理的非常重要的模块。
它可以对常见的表格、csv、txt等文件进行处理,也可以对一些不常见的文件进行处理(比如hdf、html、json、sql、sas等等)。
pandas针对这些文件提供了不同的读取函数,比如读取表格read_excel(),读取csv文件read_csv(),读取html文件是read_html()。
读取不同类型的文件后,pandas丰富的数据处理功能(函数),能够高效地对文件内容进行各种所需的处理,并将处理后的结果保存为自己所需的文件类型。
很多人会说excel也能做数据处理,但是pandas相比excel的优势至少有以下几点,这几点优势,是excel绝对无法比拟的,或者说excel在有些方面是做不到的或难以做到。
1、pandas可以处理海量的数据文件,excel面对海量数据,很难处理。
2、pandas可以直接处理很多文件类型,尤其是储存大量数据的文件类型,excel一般无法处理或需要转换或需要插件等,才能将内容导入表格中。
3、pandas处理过程很高效,一个函数或一行代码,可以快速完成有些数据处理工作,过程快速且简单。
4、pandas结合正则表达式,能够非常强大、非常高效地提取、修改文本内容等各类操作,尤其是大量的数据。
#python# #python自学#
有一种凸轮设计是已知时间和位移的关系,来计算凸轮的形状。
时间和位移的关系我们可以用EXCEL表格来编辑出来。另存为CSV格式。
在SolidWorks Motion中马达选择输入数据,可以选择用EXCEL编辑的数据。
计算一下,就得到凸轮的形状了。
对仿真感兴趣的朋友,可以考虑考虑学习SolidWorks Motion。设计仿真十分方便。
而且SolidWorks很容易上手,很容学会!
美国正在打击伪造疫苗接种卡的犯罪行为。
案例一:5月4日,加州警方逮捕加州克莱门茨一酒吧老板Todd Anderson(下图),这是警方钓鱼执法的结果,一位加州酒精性饮料管理局的便衣从他手里以20美元一张的价格买到了几张假疫苗接种卡。Anderson被控身份盗窃罪、伪造政府文件罪、伪造病历罪等罪名。
案例二:5月11日,纽约长岛一家CVS药店的雇员Zachary Honig被捕,当地警方搜出62张他从工作单位盗窃的疫苗接种卡,其中8张已经填好了内容,他准备将这些疫苗接种卡送给亲朋好友,这样他们可以进出需要出示疫苗接种证明的场所。虽然Honig还没有来得及送出这些接种卡,他依然被控八项二级违法伪造文件罪等罪名,CVS随即将其开除。
#海外疫苗接种记# 【轮到你打,马上去打】“疫苗的大规模接种功不可没。朋友们,轮到你时,请马上接种。”美国MD安德森癌症中心放射外科中心主任,终身教授张玉蛟,在看到部分地区新冠感染率下降时说。
上周五,我顺利在超市Publix的网站预约到了3月23日接种新冠疫苗。
Publix系统的药房现在提供的是Moderna(莫多纳双剂疫苗)和Johnson&Johnson(强生单剂疫苗)两种疫苗。在预约注册时可以自由选择。
Publix是主要服务于佛罗里达和佐治亚州的区域性大型超市。
在佛罗里达大学所在地甘城(Gainesville),居民除了通过Publix,还可以在沃尔玛、Sam's、Target 、CVS、Walgreens等超市系统的网站预约疫苗接种。各个超市提供的疫苗品种不同,注射的方式也不同,有的是走入药房注射,有的则是在车上等待医护人员注射。
我预约的Publix,是走入式注射。昨天11:10,我比预约时间提前了十分钟到达药房的签到处。按照预约时收到的确认函,携带了我的ID(驾照)和保险卡。
签到处的志愿者,是一个慈眉善目的老太太,她询问了我的名字后,就用对讲设备通知药房预约11:20接种疫苗的女士已到。药房开始备药。
她在桌子上拿出了已准备好的有我名字的文件夹。要我填写一张问卷,主要回答是之前有否打过疫苗?有否感染过新冠?是否过敏等问题。
因为是预约制,我填完表,11:20准时走进药房,等候区没有其他人,观察区有两位已接种疫苗的女士。
医生核对了我的姓名、生日后,带我进入注射室。
注射时间非常短暂,还没有什么反应,就已经完成接种。我接种的是莫得纳莫得纳(Moderna)疫苗。
接种完后,医生给我了接种卡,让我在注射室旁的等候区观察15分钟。没有不良反应就可以离开。
在接种卡背后写着,我需要在4月20日接种第二针疫苗。
接种疫苗的费用是免费的。我一个朋友持旅游签证B签,没有保险,也是免费接种的。
打完疫苗后可以在CDC(美国疾病控制和预防中心)的Vsafe网站注册一个账号,每日反馈接种后的反应。如果有什么问题,会有工作人员联系你。
目前,我接种疫苗已超过24小时,除打针处略有疼痛,没有其他不良反应。回到家,喝了一大碗鸡汤补充营养,还要多吃水果补充维生素。
有朋友好奇针头要打多深?接种疫苗的执业医师Wendy Ye说:“一般针头是1英寸(2.5厘米)长,都打进肌肉。遇到大胖子,她们也有1.5英寸(3.8厘米)长的针头可以对付。”
佛罗里达接种疫苗十分踊跃。像Publix的网站显示,这几天的所有的预约都是满的。不过,居民也可以选择去其他大型超市的药房预约、接种。
佛罗里达大学也开始面向教职人员接种疫苗。佛大选择的是辉瑞疫苗(Pfizer)。
Wendy Ye医师还说:“憋了整整一年,有的美国人打到疫苗时心潮起伏,一位流行病学专家坦承他打疫苗时哭了,这种情况并不罕见。我在疫苗站工作也碰到许多有趣的病人。朋友家96岁的老人,因为听了各种传说担心第二针的副作用太大,几乎想放弃第二针了。幸亏后来想通了去打了,根本没有想象的副作用。”
针对特殊人群是否可以打疫苗这个问题,Wendy Ye医师说:“她掌握的是一些在美国的情况,比如纽约州的优先接种疫苗的名单,就包括癌症、脑血管疾病、肾病、心脏病等等病患。
Ye医师建议准备接种的朋友,穿短袖或无袖衫,打针时方便许多。
佛罗里达州2021年1月19日开始给65岁以上人群注射疫苗;3月15日开始60岁以上人群,3月22日开始50岁以上人群。 教育领域、警察、医疗机构的工作人员具有疫苗接种优先权。估计到4月5日,疫苗接种向所有18岁及以上年龄人群开放。
全佛州150家CVS药店、125家沃尔玛(Wal-Mart)和山姆俱乐部(Sam’s Club)门店、70多家Winn Dixie门店、600家沃格林(Walgreens)药店以及730家Publix药店中的每一家都可以预约接种新冠疫苗。”
截至3月24日,全美已接种1亿3000万剂疫苗。目前全美约有24%的人口接种了至少1剂疫苗,13%人口已完成接种。据约翰霍普金斯大学统计,截至24日,全美确诊病例近3000万,死亡人数近55万。
@头条国际





