python学习笔记(11)--文件与数据格式化
文件的概念:
文件是数据的抽象和集合,是存储在辅助存储器上的数据序列,文件是数据存储的一种形式,文件的展现形态,文本文件和二进制文件。
文本文件输出:
f.txt文件保存:“我是中国人”
>>> tf=open("d:/python_test/f.txt", "rt")
>>> tf
<_io.TextIOWrapper name='d:/python_test/f.txt' mode='rt' encoding='cp936'>
>>> print(tf.readline())
我是中国人
>>> tf.close
<built-in method close of _io.TextIOWrapper object at 0x0000000002F81DC8>
二进制文件输出:
>>> bf=open("d:/python_test/f.txt", "rb")
>>> print(bf.readline())
b'\xce\xd2\xca\xc7\xd6\xd0\xb9\xfa\xc8\xcb'
>>> bf.close
<built-in method close of _io.BufferedReader object at 0x0000000002FD8F68>
文件的打开和关闭:
文件处理步骤:打开->操作->关闭
open : 文件的存储状态->文件的占用状态
close: 文件的占用状态->文件的存储状态
常用的读写文件操作:a.read(size) a.readline(size) a.readlines(hint) a.write(s) a.writelines(lines) a.seek(offset)
1、文件的打开
<变量名> = open(<绝对路径/相对路径/文件名>, <打开模式>)
'r' 只读模式,默认值,如果文件不存在,返回FileNotFoundError
'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖
'x' 创建写模式,文件不存在则创建,存在则返回FileExistError
'a' 追加写模式,文件不存在则创建,存在则在文件最后追加内容
‘b’ 二进制文件形式
't' 文本文件模式,默认值
‘+’ 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
f = open('f.txt', 'a+') 文本形式打开,追加写模式 + 读文件
f = open('f.txt', 'b') 二进制形式打开,读模式
2、文件的关闭
<变量名>.close()
如果调用了open没有调用close,程序运行过程中,文件就一直处于打开模式,在程序退出后,python的解释器会将文件关闭。要注意调用close。
3、文件内容的读取
<f>.read(size = -1) 读入全部内容,如果输入参数,读入前size长度,指针下移
<f>.readline(size = -1) 读入一行内容,如果给出参数,读入该行的前size长度,指针下移
<f>.readlines(hint=-1) 读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行
fname=input("请输入文件名称:")
fo = open(fname,"r")
for line in fo.readlines():
print(line)
fo.close()
一次性读入文件,会消耗很多内存,一般采用分行读入,逐行处理的思路
fname=input("请输入文件名称:")
fo = open(fname,"r")
for line in fo:
print(line)
fo.close()
4、数据的文件写入
<f>.write(s) 向一个文件中写入字符串或者字节流,指针下移
<f>.writelines(lines) 将一个元素全为字符串的列表写入文件 ,直接拼接,不换行,指针下移
ls=["中国","法国","英国"]
tf.writelines(ls)
“中国法国英国”
<f>.seek(offset) 改变当前文件操作指针的位置,offset的含义如下:0-文件开头,1-当前位置,2-文件结尾
fo=open("output.txt",'w+')
ls=["中国","法国","英国"]
fo.writelines(ls)
fo.seek()
for line in fo:
print(line)
fo.close()
输出:
"中国法国英国"
5、实例 从文件中读取数据绘制图形
#autodraw
import turtle as t
t.setup(,,,)
t.pencolor("read")
t.pensize()
datals = []
f = open("d:/python_test/data.txt")
for line in f:
line = line.replace("\n","") '''将\n替换为,'''
datals.append(list(map(eval, line.split(",")))) /map 对第二个参数中的每一个元素,执行第一个参数的函数/
datals
f.close()
for i in range(len(datals)):
t.pencolor(datals[i][], datals[i][], datals[i][])
t.fd(datals[i][])
if datals[i][]:
t.right(datals[i][])
else:
t.left(datals[i][])
举一反三:
1、自动化思维:数据和功能分离,数据驱动的自动运行
2、接口化设计:格式化设计接口,清晰明了
3、二维数据应用:应用维度组织数据,二维数据最常用
4、扩展接口设计,增加更多控制接口
5、扩展功能设计
6、扩展应用需求
python学习笔记(11)--文件与数据格式化的更多相关文章
- python学习笔记(11):文件的访问与函数式编程
一.文本文件读写的三种方法 1.直接读入 file1 = open('E:/hello/hello.txt') file2 = open('output.txt','w') #w是可写的文件 whil ...
- Python学习笔记之文件处理
1.打开和关闭 要打开文件可以使用函数 open(),它位于自动导入模块 io 中.函数将文件名作为唯一不可缺少的函数,并返回一个文件对象.它还有一个名叫 mode 的参数,用于指定文件模式,其可取值 ...
- [Python学习笔记]组织文件
shutil 模块 shutil 模块可以让我们很方便的在Python程序中复制.移动.改名和删除文件. 复制文件和文件夹 使用shutil.copy()来复制文件,该函数含两个参数,均为字符串格式的 ...
- 【Spring学习笔记-MVC-9】SpringMVC数据格式化之日期转换@DateTimeFormat
作者:ssslinppp 1. 摘要 本文主要讲解Spring mvc数据格式化的具体步骤: 并讲解前台日期格式如何转换为java对象: 在之前的文章<[Spring学习笔记-MVC ...
- Python学习笔记015——文件file的常规操作之一(文本文件)
1 什么是文件 文件是用于数据存储的单位 文件通常用来长期保存数据 读写文件是最常见的I/O操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件的功能都是由操作系统提供的,一般而言,操 ...
- python学习笔记(7)文件的访问与函数式编程
一.文件读写的3中方法 1.直接读入 fiel1=open('test.txt') file2=open('output.txt') while True: line=file1.readLine() ...
- python学习笔记(六)---文件操作与异常处理机制
文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...
- Linux学习笔记11——文件I/O之二
一.文件共享 内核使用三种数据结构表示打开的文件,它们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响. 1.每个进程在进程表中都有一个记录项,记录项中包含有一张打开文件描述表 2.内 ...
- python学习笔记11 ----线程、进程、协程
进程.线程.协程的概念 进程和线程是操作系统中两个很重要的概念,对于一般的程序,可能有若干个进程,每一个进程有若干个同时执行的线程.进程是资源管理的最小单位,线程是程序执行的最小单位(线程可共享同一进 ...
- python学习笔记11 ----网络编程
网络编程 网络编程需要知道的概念 网络体系结构就是使用这些用不同媒介连接起来的不同设备和网络系统在不同的应用环境下实现互操作性,并满足各种业务需求的一种粘合剂.网络体系结构解决互质性问题彩是分层方法. ...
随机推荐
- 关于CUDA,cuDNN,TF,CUDA驱动版本兼容问题
实际工作当中,经常维护好几个项目的代码,不同项目依赖的TF版本不一致问题.网上找了好多资料,但是每次遇到的问题都不一样,每次都要去查(就是是一样的问题,解决办法也可能会不一样)每次踩坑无数,今天痛定思 ...
- P1913 L国的战斗之伞兵(广搜BFS)
就是在输入的时候把 ‘o’ 的放在队里,然后,直接BFS就可以了.感觉是水题. #include<iostream> #include<queue> using namespa ...
- SSH远程SOLARIS11时被拒绝
在虚拟机中新安装的solaris11,安装过程中配置了静态IP地址用以方便ssh连接,使用root用户ssh连接时,密码没有错,但总是提示密码被拒绝,连接established 代表是通的,telne ...
- mybatis错误之org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
玩了MyBatis差不多有两年了,中间也玩过MyBatis-Plus,这个MyBatis-Plus其实与MyBatis的区别并不大.今天写博客业务代码的时候,犯一个初学者犯过的错误. 错误信息如下:o ...
- python:unittest之discover()方法批量执行用例
自动化测试过程中,自动化覆盖的功能点和对应测试用例之间的关系基本都是1 VS N,如果每次将测试用例一个个单独执行,不仅效率很低, 无法快速反馈测试结果,而且维护起来很麻烦.在python的单元测试框 ...
- Java网络编程中异步编程的理解
目录 前言 一.异步,同步,阻塞和非阻塞的理解 二.异步编程从用户层面和框架层面不同角度的理解 用户角度的理解 框架角度的理解 三.为什么使用异步 四.理解这些能在实际中的应用 六.困惑 参考文章 前 ...
- 深入理解Spring Boot数据源与连接池原理
Create by yster@foxmail.com 2018-8-2 一:开始 在使用Spring Boot数据源之前,我们一般会导入相关依赖.其中数据源核心依赖就是spring‐boot‐s ...
- Apache Commons Codec的Base64加解密库
下载地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi import org.apache.commons.cod ...
- rest_framework之视图及源码剖析
最初形态(工作中可能会使用) 引子 Django的CBV我们应该都有所了解及使用,大体概括一下就是通过定义类并在类中定义get post put delete等对应于请求方法的方法,当请求来的时候会自 ...
- iStack堆叠介绍
iStack堆叠技术简介: 网络中主要存在两种形态的通信设备:盒式设备和框式设备.通常盒式设备部署在网络接入层或对可靠性要求不高的汇聚层,盒式单机设备对端口和带宽扩容不够灵活,扩容增加新的盒式设备 ...