鼠年第一天开盘,很多股票跌停,太闹心了!今天再找点开心的事情做吧。人生最幸福的事情莫过于看到自己写的程序调试通过了!

前面我们介绍了,如何用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文件中相关推荐

  1. 写csv文件_机器学习Python实践——数据导入(CSV)

    一,CSV 逗号分隔值(逗号分隔值,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).字幕:纯意味着该文件的英文一个字符序列,不含必须像二进制数 ...

  2. 数据存储在.csv文件乱码,数据写入才一部分就报错'gbk' codec can't encode character '\xee' in position 45: illegal multibyte

    使用python爬虫爬取规则数据后转化成来List格式,将其存储在.csv 文件中 使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeE ...

  3. scrapy实战----将数据存储到csv文件和MySQL数据库中

    本章将通过爬取51jobs求职网站中的python职位信息来实现不同方式的数据存储的需求. github地址--->源代码 我们先来看一下:51jobs网站 我们需要的数据有,职位名 公司名 工 ...

  4. python怎么去掉视频字幕_利用Python实现字幕挂载(把字幕文件与视频合并)思路详解...

    其实超简单超简单!python好现成的库,一下子省略了好多步骤! 本文在Windows环境下!linux只是不需要手动输入imagicmagick的位置! 需要用到的环境 python(基本上只要不是 ...

  5. csv逗号分隔符转换_机器学习Python实践——数据导入(CSV)

    一,CSV 逗号分隔值(逗号分隔值,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).字幕:纯意味着该文件的英文一个字符序列,不含必须像二进制数 ...

  6. python用什么处理文件_利用Python如何快速处理文件

    利用Python如何快速处理文件 我之前要合并将近1000个CSV表格 每个表格共370列,约360行不等,列名相同 三个方案瞬间浮现在我眼前: 1.Ctrl C + Ctrl V--可以睡公司了: ...

  7. python脚本下载钉钉的文件_利用python下载钉钉群直播视频

    今年因为疫情的原因不能开学,所以很多学校都使用钉钉进行在线授课,但是在钉钉里面点击下载群直播回放的时候却发现: 真好,管理员设置了不允许下载回放. 这就完了吗?NoNoNo!既然正常途径下载不了,那么 ...

  8. python通过内置的什么函数打开一个文件_利用python进行文件操作

    这篇文章主要介绍了如何利用python进行文件操作,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非 ...

  9. python处理word或者pdf文件_利用python程序生成word和PDF文档的方法

    一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...

最新文章

  1. 连夜撸了一个简易聊天室
  2. 人工智能改进传统云ERP的10种方法
  3. haproxy 同一域名下分发请求
  4. 利用tinyproxy在Linux上搭建HTTP Proxy Server
  5. 142. Leetcode 93. 复原 IP 地址 (回溯算法-切割问题)
  6. 17个之多!Windows Vista各版本功能区别详解
  7. mongodb清洗数据
  8. angularjs mysql_AngularJS SQL
  9. 全栈工程师与架构师的区别是什么?
  10. burpsuite_pro的使用
  11. Kafka 如何保证消息全局有序
  12. 【linux】centos6.9通过virtualenv安装python3.5
  13. php fpm listen.owner,nginx 与 php-fpm socket 所有者权限问题
  14. 锐捷Linux认证失败,如何解决win10系统锐捷认证失败?锐捷认证失败的解决方法步骤...
  15. 汇川,H3U,plc程序模板和触摸屏程序模板,三个步进和三个伺服,三个伺服用的是canlink总线,适用于运动轴控制
  16. 为什么阿里不推荐使用MySQL分区表?
  17. ctf编码,解密总结
  18. 华清远见重庆分中心——前端阶段技术个人总结
  19. LoadLibrary()动态调用dll失败,GetLastError()返回126
  20. nginx代理MySQL实现数据库远程办公

热门文章

  1. 由ORA-28001同一时候带出ORA-28000的解决的方法
  2. ListView高度
  3. JFrame 跳转之后自动关闭窗口 dispose()
  4. [USACO2011 Feb] Cow Line
  5. HBase配置(伪分布式模式)
  6. BCG、MFC如何支持《支持应用程序设置的回复、保存等》的?他是怎么实现的呢?
  7. 利用VmWare_在本地内网IP地址段_搭建Centos7测试MyCat集群_亲测---Linux工作笔记044
  8. C++提高部分_C++类模板基本语法---C++语言工作笔记087
  9. Sharding-Sphere,Sharding-JDBC_介绍_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记001
  10. C/C++线程与多线程工作笔记0005---c/c++中的wchar_t类型