本章导言

什么是数据格式化

前言:
-学完本章,看待数据会有一种规范/格式化的视角
-方法论:从Python角度理解文件和数据表示
-实践能力:学会编写带有文件输入输出的程序

1. 文件的使用

文件的类型
-文件是数据的抽象和集合,可理解为存储在辅助存储器上的数据序列,是数据存储的一种形式。

展现形态:文本文件和二进制文件(本质上,存储都以二进制形式)

-文本文件:由单一特定编码组成的文件,如UTF-8编码
由于存在编码,文本文件也被看成是存储着的长字符串。
举例: .txt .py

-二进制文件:直接由比特0和1组成,没有统一字符编码
01根据预定义格式进行结构组织
举例: .png .avi

#文本形式打开文件
bf1 = open("E:\code\python\821\File.txt","rt",encoding="utf-8")
print(bf1.readline())
bf1.close()
#二进制形式打开文件
bf2 = open("E:\code\python\821\File.txt","rb")
print(bf2.readline())
bf2.close()

输出

2. 文件的打开和关闭

文件处理的步骤:打开-操作-关闭

-打开:让文件从存储状态转化为占用状态 a = open( , )
-关闭:让文件从占用状态转化为打开状态 a.close( )

2.1 文件的打开

<变量名> = open(<文件名>,<打开模式>)
参数1-文件的路径和名称(源文件同目录可省路径)
参数2-文本还是二进制,读还是写
打开之后,文件用一个叫做文件句柄的抽象变量来表示。
注:路径中一般用斜杠/或双反斜杠\来替代反斜杠\(python中的转义符)

-文件打开模式(7种)
读写相关 r/w/x/a 打开文件方式相关b/t


如果不给任何参数,默认为“rt” -文本形式,只读模式
f = open(“f.txt”,”w”) -文本形式,覆盖写模式
f = open(“f.txt”,”a+”) -文本形式,追加写模式,同时文件可读
f = open(“f.txt”,”b”) -二进制形式,只读模式

2.2 文件关闭
<变量名>.close()

如果不关闭会怎样?
程序运行过程中文件一直是打开状态,程序退出时会被解释器关闭。

3. 文件内容的读取

-读文件函数
① a.read(size=-1) -读入全部内容,如果给出参数,读入前size长度

f = open("E:/code/python/821/File.txt","rt",encoding="utf-8")
s = f.read(2)
print(s)

输出
"中

② a.readline(size=-1) -读入一行内容,如果给出参数,读入该行前size长度

③ a.readlines(hint) -读入文件的所有行,以每行(视为字符串)为元素形成列表,如果给出参数,读入前hint行

应用
(1) 文件的全文本操作,即遍历文件的全部信息
方法一:

fname = input("请输入要打开的文件名称:")
fo = open(fname,"r")
txt = fo.read()
#对全文txt进行处理
fo.close()

特点:一次读入,统一处理
弊端:文本文件体量过大,会耗费很多资源

方法二:

fname = input("请输入要打开的文件名称:")
fo = open(fname,"r")
txt = fo.read(2)
while txt != "":#对txt进行处理txt = fo.read(2)
fo.close()

特点:按数量读入,逐步处理

(2) 逐行遍历文件
方法一:
将所有文件的行一次性地读入内存

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. 将数据写入文件

2个方法和1个辅助函数

文件操作指针会随着每次函数调用的变化而变化

fo = open("E:\code\python\821\output.txt","w+")
ls = ["中国","法国","美国"]
fo.writelines(ls)
for line in fo:print(line)
fo.close()

没有任何输出
修改:在fo.writelines(ls)后面加 fo.seek(0)
新输出
中国法国美国

出处:北理工Python慕课

Python文件的使用相关推荐

  1. 在pycharm中无法引入同一目录下的python文件

    问题 同一目录下存在以下两个python文件: 1. app.py 2. forms.py 现在我希望在app.py中引入forms.py的某个函数,但是出现如下情况: 主要表现在: 函数标红 无法自 ...

  2. 关于python文件读写小结

    读文件 打开一个文件用open()方法(open()返回一个文件对象,它是可迭代的): >>> f = open('test.txt', 'r') r表示是文本文件,rb是二进制文件 ...

  3. Python Qt GUI设计:将UI文件转换为Python文件的三种妙招(基础篇—2)

    目录 1.创建项目 2.将.ui文件生成.py文件 2.1.Eric 6编译 2.2.Python命令行编译 2.3.脚本编译 3.界面.逻辑分离思想 在开始本文之前提醒各位朋友,Python记得安装 ...

  4. python 文件追加写入_Python写入文件–解释了打开,读取,追加和其他文件处理功能

    python 文件追加写入 欢迎 (Welcome) Hi! If you want to learn how to work with files in Python, then this arti ...

  5. Python 文件 close() 方法

    描述 Python 文件 close() 方法用于关闭一个已打开的文件.关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误. close() 方法允许调用多次. 当 file 对 ...

  6. python文件和目录

    # -*- coding: utf-8 -*-import osdef printFile(rootDir):allFiles = os.listdir(rootDir) #列出文件夹下所有文件和目录 ...

  7. 深度学习运行python文件,出现跨路径搜索其他module,怎么解决?

    在运行的目标python文件顶部,添加需要用的模块的搜索路径: 1)import sys, os sys.path.append(os.pardir) #添加的路径是,待运行目标python文件所在文 ...

  8. 第九课.Python文件操作

    Python文件读写 最基本的,通过open返回文件句柄(文件对象),将文件读入内存: #f是一个文件对象 f=open('./sample.txt') data=f.read()#read读取所有内 ...

  9. sys.argv[n] (终端运行python文件第n个参数) 在 pycharm 中的应用

    sys.argv[n] (终端运行python文件第n个参数) 在 pycharm 中的应用 打开pycharm --> Run --> Edit Configurations --> ...

  10. python文件信息排序_python文件排序的方法总结

    在python环境中提供两种排序方案:用库函数sorted()对字符串排序,它的对象是字符:用函数sort()对数字排序,它的对象是数字,如果读取文件的话,需要进行处理(把文件后缀名'屏蔽'). (1 ...

最新文章

  1. bigdecimal为0 xml不走_爱情不能够接受谎言的星座,天蝎座容忍度为0,发现将失去彼此...
  2. QT 的信号与槽机制介绍
  3. 使用最新目标跟踪框mmtracking实现自己的目标跟踪项目
  4. 网络管理经验谈:初级网管的网络安全
  5. 经典C语言程序100例之三零
  6. 去掉(不显示)关闭QQ游戏后跳出的广告
  7. ES6对象(2):面向对象与类
  8. P2522-[HAOI2011]Problem b【莫比乌斯反演】
  9. 我用Python帮学校写了一款图书管理系统!教导员居然请我吃饭
  10. 转换运行时获取DTP语义组
  11. MVVM 实战之计算器
  12. Matlab图像标题_title
  13. 清除远程桌面的连接记录
  14. ubuntuv20启动界面美化_光影魔术手---用‘傻瓜软件’美化图像
  15. 半导体随机存储器(random access memory)
  16. 解决视频资源音乐资源在Android模拟器中不能播放的问题
  17. sketch导出html可以跳转,Sketch导入、导出功能说明及技巧
  18. 【理解】ORB特征提取与ORBSLAM特征匹配简要剖析
  19. switch日版有中文吗_原神Switch日版可以玩吗
  20. Echarts的常用api

热门文章

  1. 【转】解密“设计模式”
  2. RPC-client异步收发核心细节?
  3. 剑指offer青蛙跳台阶问题
  4. 带monkey的测流量!
  5. 秘钥加密码的登录模式
  6. django 快速实现登录
  7. Maximum Subarray
  8. java List集合中contains方法总是返回false
  9. 将不确定变为确定~Flag特性的枚举是否可以得到Description信息
  10. 不用se11创建表结构,作smartforms