c++ 写入文件_利用Python把数据存储在csv文件中
鼠年第一天开盘,很多股票跌停,太闹心了!今天再找点开心的事情做吧。人生最幸福的事情莫过于看到自己写的程序调试通过了!
前面我们介绍了,如何用Python做一个串口通讯的上位机。用这个上位机我们可以从ECU中读取数据,然后输出到屏幕上。有些时候,我们需要保存这些数据。那么今天我给大家介绍的就是如何把数据保存到文件中。
我们还是从简单的开始入手:
1. 将数据保存到txt文件中
我们先从三步法开始:
第一步:打开文件
第二步:写数据到文件中
第三步:关闭文件
对应的源代码为:
data = ['30','31','32','33','34'] #要存储的数据列表
file = open('C:\\Users\\test.txt','a+') #打开文件,如果没有,则创建一个新文件,文件操作模式,采用追加模式
file.write(data[0]) #保存列表中的第一个元素
file.write(data[1]) #保存列表中的第一个元素
file.close() #关闭文件
在open()函数中,我们一般需要用到两个参数:一个是带路径的文件名;
一个是对文件操作的类型。
因为“\”在python中是用于特殊字符,比如“\n”代表换行,“\\”的实际意思是“\”。所以上面的路径‘C:\\Users\\test.txt’实际上代表的是’ C:\Users\test.txt’。千万记住!
另外一个参数是文件操作类型:
模式 |
描述 |
t |
文本模式 (默认)。 |
x |
写模式,新建一个文件,如果该文件已存在则会报错。 |
b |
二进制模式。 |
+ |
打开一个文件进行更新(可读可写)。 |
U |
通用换行模式(不推荐)。 |
r |
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb |
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ |
打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ |
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w |
打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb |
以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ |
打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ |
以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a |
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ |
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
运行程序之后,我们会在C:\Users\路径下,找到一个test.txt文件,打开文件发现数据已经被写入。
三步法已经很简单了,但是python还觉得很罗嗦,采用with open() as 语句,把close函数省了。
with open ('C:\\Users\\test.txt','a+') as file1: #打开文件
file1.write(data[2]) #保存列表中的第三个元素
file1.write(data[3]) #保存列表中的第四个元素
注意:with后面的语句要缩进;write()函数中参数是字符串类型的。
那我们现在就在串口通讯程序后面加入下面语句:
with open ('C:\\Users\\test.txt','a+') as file1: #打开文件,在文件末尾,追加数据
file1.write(data) #保存数据
运行程序,输入r读取数据指令,在C:\users\文件中打开test.txt文件,数据已经被写入。
文件写入是成功了,不过现在很少有人用txt来做数据分析,除非是一些log文件。比如我们可以把一些关键数据和时间保存在txt文件中,供以后查看:
with open ('C:\\Users\\test.txt','a+') as file1: #打开文件,在文件末尾,追加数据
file1.write(str(time.localtime().tm_hour)) #保存当前时间:小时
file1.write(str(time.localtime().tm_min)+": ") #保存当前时间:分
file1.write(data+'\n') #保存数据,并换行
至此,我们已经完成了第一步。接下来我们看看如何将数据保存到csv文件中
2. 将数据保存到csv文件中。
CSV(Commma-Separated Value)是用逗号分隔符,以纯文本形式存储表格数据(数字和文本)的文件格式。CSV文件可以用excel打开和编辑,便于数据统计和分析。
要把列表data中的数据写入到csv中的一行,可以用下面代码:
with open ('C:\\Users\\test.csv','a+',newline='') as file1: #打开文件
writer =csv.writer(file1) #创建一个实例
writer.writerow(data) #给csv文件写入一行数据
当获取到data数据之后,可以立即调用这段代码,保存数据。代码如下图所示:
运行这段程序以后,在C:\Users\文件夹中,用excel打开test.csv文件,数据已经被写入到文件的每一行中。
然后我们可以用excel对数据进行分析,用各种图表,曲线分析数据。
是不是比我们想象的要简单很多呢。Python充分利用了现有的模块,在此基础上可以快速开发出自己需要的功能。这就是python流行的一个主要原因之一!
c++ 写入文件_利用Python把数据存储在csv文件中相关推荐
- 写csv文件_机器学习Python实践——数据导入(CSV)
一,CSV 逗号分隔值(逗号分隔值,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).字幕:纯意味着该文件的英文一个字符序列,不含必须像二进制数 ...
- 数据存储在.csv文件乱码,数据写入才一部分就报错'gbk' codec can't encode character '\xee' in position 45: illegal multibyte
使用python爬虫爬取规则数据后转化成来List格式,将其存储在.csv 文件中 使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeE ...
- scrapy实战----将数据存储到csv文件和MySQL数据库中
本章将通过爬取51jobs求职网站中的python职位信息来实现不同方式的数据存储的需求. github地址--->源代码 我们先来看一下:51jobs网站 我们需要的数据有,职位名 公司名 工 ...
- python怎么去掉视频字幕_利用Python实现字幕挂载(把字幕文件与视频合并)思路详解...
其实超简单超简单!python好现成的库,一下子省略了好多步骤! 本文在Windows环境下!linux只是不需要手动输入imagicmagick的位置! 需要用到的环境 python(基本上只要不是 ...
- csv逗号分隔符转换_机器学习Python实践——数据导入(CSV)
一,CSV 逗号分隔值(逗号分隔值,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).字幕:纯意味着该文件的英文一个字符序列,不含必须像二进制数 ...
- python用什么处理文件_利用Python如何快速处理文件
利用Python如何快速处理文件 我之前要合并将近1000个CSV表格 每个表格共370列,约360行不等,列名相同 三个方案瞬间浮现在我眼前: 1.Ctrl C + Ctrl V--可以睡公司了: ...
- python脚本下载钉钉的文件_利用python下载钉钉群直播视频
今年因为疫情的原因不能开学,所以很多学校都使用钉钉进行在线授课,但是在钉钉里面点击下载群直播回放的时候却发现: 真好,管理员设置了不允许下载回放. 这就完了吗?NoNoNo!既然正常途径下载不了,那么 ...
- python通过内置的什么函数打开一个文件_利用python进行文件操作
这篇文章主要介绍了如何利用python进行文件操作,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非 ...
- python处理word或者pdf文件_利用python程序生成word和PDF文档的方法
一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...
最新文章
- 连夜撸了一个简易聊天室
- 人工智能改进传统云ERP的10种方法
- haproxy 同一域名下分发请求
- 利用tinyproxy在Linux上搭建HTTP Proxy Server
- 142. Leetcode 93. 复原 IP 地址 (回溯算法-切割问题)
- 17个之多!Windows Vista各版本功能区别详解
- mongodb清洗数据
- angularjs mysql_AngularJS SQL
- 全栈工程师与架构师的区别是什么?
- burpsuite_pro的使用
- Kafka 如何保证消息全局有序
- 【linux】centos6.9通过virtualenv安装python3.5
- php fpm listen.owner,nginx 与 php-fpm socket 所有者权限问题
- 锐捷Linux认证失败,如何解决win10系统锐捷认证失败?锐捷认证失败的解决方法步骤...
- 汇川,H3U,plc程序模板和触摸屏程序模板,三个步进和三个伺服,三个伺服用的是canlink总线,适用于运动轴控制
- 为什么阿里不推荐使用MySQL分区表?
- ctf编码,解密总结
- 华清远见重庆分中心——前端阶段技术个人总结
- LoadLibrary()动态调用dll失败,GetLastError()返回126
- nginx代理MySQL实现数据库远程办公
热门文章
- 由ORA-28001同一时候带出ORA-28000的解决的方法
- ListView高度
- JFrame 跳转之后自动关闭窗口 dispose()
- [USACO2011 Feb] Cow Line
- HBase配置(伪分布式模式)
- BCG、MFC如何支持《支持应用程序设置的回复、保存等》的?他是怎么实现的呢?
- 利用VmWare_在本地内网IP地址段_搭建Centos7测试MyCat集群_亲测---Linux工作笔记044
- C++提高部分_C++类模板基本语法---C++语言工作笔记087
- Sharding-Sphere,Sharding-JDBC_介绍_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记001
- C/C++线程与多线程工作笔记0005---c/c++中的wchar_t类型