文件对象 = open("文件名","使用方式")

rt:读取一个txt文件

wt: 只写打开一个txt文件,(如果没有该文件则新建该文件)会覆盖原有内容

at:打开一个txt文件,并从文件指针位置追加写内容(文件指针默认在末尾)

文件操作错误属于:I/O异常

通常的异常:

1 try:2 f = open("a.txt","wt")3 exceptException as e:4 print(e)

#文件的写操作

# 函数: 文件对象.write(s)其中s是待写入文件的字符串{文件对象需要时可写入的对象}

1 try:2 fobj = open("anc.txt","wt") #wt:可写入操作方式/at为在原有的文件内容追加写入

3 fobj.write(" more") #写函数

4 fobj.close()5

6 exceptException as err:7 print(err)8

9 #结果:anc文件保存至当前目录下,并写入“[换行]more”

#案例:学生信息储存

1 name = "wanzi"

2 gender = "男"

3 age = 23

4 try:5 f = open("students.txt","wt")6 whileTrue:7 #s = Student(i)

8 #if s:

9 f.write("namegenderge")10 ans = input("continue(Y/y):")11 if ans != "Y" and ans != "y":12 break

13 i = i+1

14 f.close()15

16 exceptException as e:17 print(e)

#读文件操作 文件对象.read(n) //返回全部字符串或者n字节字符

1 def writeFile(): #写文件操作

2 f = open("abc.txt","wt")3 f.write("Hello world I am Code_boy Mirror_") #三行数据(两个 )

4 f.close()5

6 def readFile(): #读文件操作

7 f = open("abc.txt","rt")8 sread = f.read() #文件内容读取 [如果read(n)有值,则读取n个字符,为空则读取全部]

9 print(sread) #将读取的内容打印输出

10 f.close()11

12 try:13 writeFile() #调用写文件函数,写入文件

14 readFile() #调用读文件函数,读出(打印)文件内容

15 exceptException as e:16 print(e)17

18 """

19 结果:20 Hello world21 I am Code_boy22 Mirror_23 """

#读文件操作 文件对象.readline() //返回一行字符串(读取连续的字符串,遇到 或文件末尾结束)

1 defwriteFile():2 f = open("readline.txt","wt")3 f.write("Hello world")4 f.close()5

6 defreadlineFile():7 f = open("readline.txt","rt")8 sreadline = f.readline() #读取readline文件(只读一行)

9 print(sreadline,"len=",len(sreadline))10 sreadline =f.readline()11 print(sreadline, "len=", len(sreadline))12 sreadline =f.readline()13 print(sreadline, "len=", len(sreadline))14

15 f.close()16 try:17 writeFile()18 readlineFile()19 exceptException as e:20 print(e)21

22 结果:23 Hello #readline中的文件内容: Hello world 结合readline的功能,在读取一行的数据

24 len= 6 #"Hello ’ >>>> 共计6个字节(换行是因为读取了 )

25 world len= 5 #如上类说明

26 len= 0 #文件指针已到达末尾,无法继续读出数据故 len = 0

# .readline()可以使用循环的方式(判断是否读取为空)来读取全部,一般都是使用读单行内容

#但是! .readlines(){加了一个"s"}就可以直接读取全部数据:

1 defwriteFile():2 f = open("readline.txt","wt")3 f.write("Hello world")4 f.close()5

6 defreadlinesFile():7 f = open("readline.txt","rt")8 sreadlines = f.readlines() #读取readlines文件(读全部行)并以list形式返回

9 #因为是以列表格式返回,所以一般情况下会配合循环(for)从readlines()提取每一行循环打印输出

10 for i in range(len(sreadlines)): #1号:利用for输出

11 print(sreadlines[i],end="")12

13 print(sreadlines) #读全部内容,并且每一行用" "(显示)隔开 #2号:直接输出

14 f.close()15

16 try:17 writeFile()18 readlinesFile()19 exceptException as error:20 print(error)21 """

22 1号结果:23 Hello24 world25 2号结果:26 ["Hello ", "world"] #>>>也就是readlinese()读取数据的储存(list)形式27 """

#读取文件中的学生信息

1 f = open("student1.txt","rt")2 whileTrue:3

4 name = f.readline().strip(" ")#*.strip()>>用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

5 if name == "":6 break

7 gender = f.readline().strip(" ")8 age = f.readline().strip(" ")9 f.close()10 print(name,gender,age)

#文件编码

#GBK编码:中文字符包含简体和繁体字符,每个字符仅能存储简体中文字符 汉字占二字节

#*UTF-8编码:全球通用的编码(默认使用)汉字占三字节

#文件打开时,可以指定用encoding参数指定编码例如:

# f = open("x.txt","wt",encoding = "utf-8")

# 文件编码直接决定了文件的空间大小

#案例:UTF-8文件编码

1 defwriteFile():2 f = open("utf.txt","wt",encoding = "utf-8")3 f.write("Hello I am 王宇阳")4 f.close()5

6 defreadFile():7 f = open("utf.txt","rt",encoding="utf-8")8 sreadlines =f.readlines()9 for i insreadlines:10 print(i)11 f.close()12 try:13 writeFile()14 readFile()15 exceptException as error:16 print(error)17

18 #结果: Hello I am 王宇阳

#文件指针(文件结束标志:EOF)...文件对象.tell()[返回一个整数,整数则是指针的位置]

1 f = open("zz.txt","wt",encoding="utf-8")2 print(f.tell()) #指针位置:0

3 f.write("abcdef 你好")4 print(f.tell()) #指针位置:13

5 f.close()6 f = open("zz.txt","rt",encoding="utf-8")7 f.tell() #文件指针归零

8 s = f.read(3)9 print(s,f.tell()) #输出read读取内容并返回指针位置。读取大小和指针位置相符

10 f.close()11 #结果:

12 013 13

14 abc 3

#操作指针...文件对象.seek(offset[,whence])

# offset:开始的偏移量,代表着需要偏移的字节数

# whence:[可选]默认值为"0’,给offset参数一个定义,表示从那个位置开始偏移,0:文件开头 1:文件当前位置 2:文件末尾

#----注意,只有 “rt+ wt+ at+” 的打开方式可以调整指针,其他的打开方式不支持指针操作

1 defwriteFile():2 f = open("zz1.txt","wt+",encoding="utf-8")3 print(f.tell()) #返回初始指针位置 >>> 0

4 f.write("123") #写入3字节内容

5 print(f.tell()) #返回当前(写入文件后的)指针位置

6 f.seek(2,0) #指针从开头位置偏移2字节即:1 2 . 3(点的位置)

7 print(f.tell()) #返回指针位置>>>2

8 f.write("abc") #从当前指针位置写入"abc’(覆盖了"3’)

9 print(f.tell()) #返回指针位置>>>5

10 f.close()

1 defreadFlie():2 f = open("zz1.txt","rt+",encoding="utf-8")3 r =f.read()4 print(r)5 f.close()6

7 writeFile()8 readFlie()9 #结果:

10 011 3

12 2

13 5

14 12abc15 """

#二进制文件

#打开方式:rb wb ab rb+ wb+ ab+

"""

实践中总结:

1" list内容写入文件在需要专成str格式,应为列表格式文件不接受或者采用 (f.a) 的样式;(案例综合:教材管理95-101行)

python关闭文件-python_文件的打开和关闭相关推荐

  1. python中怎么关闭文件-python_文件的打开和关闭

    文件对象 = open('文件名','使用方式') rt:读取一个txt文件 wt: 只写打开一个txt文件,(如果没有该文件则新建该文件)会覆盖原有内容 at:打开一个txt文件,并从文件指针位置追 ...

  2. python关闭文件的函数_python打开与关闭文档

    打开和关闭文件 现在,您已经可以向标准输入和输出进行读写.现在,来看看怎么读写实际的数据文件. Python 提供了必要的函数和方法进行默认情况下的文件基本操作.你可以用 file 对象做大部分的文件 ...

  3. android 关闭自动亮度,android – 如何打开和关闭自动亮度? (不重复)

    我只是试图打开和关闭自动亮度. 我开始使用此代码(在onCreate方法内) final ToggleButton autoBrightToggle = (ToggleButton) findView ...

  4. Android获取软键盘的高度、键盘的打开与关闭、监听键盘处于打开还是关闭状态

    最近在项目中,需要获取到软键盘的高度,再将底部的布局上移键盘的高度,话不多说,直接上代码: 获取软键盘高度 //一个静态变量存储高度public static int keyboardHeight = ...

  5. 关闭后天 树莓派_如何打开和关闭树莓派(绝对新手)

    这篇短文教你如何打开树莓派以及如何在之后正确关闭它. -- Chinmay(作者) 树莓派是最流行的 SBC(单板计算机)之一.如果你对这个话题感兴趣,我相信你已经有了一个树莓派.我还建议你使用其他树 ...

  6. 系统调用-文件访问 创建、打开、关闭、读、写

    系统调用-文件访问 本文特色,该文件操作与linux操作系统shell命令对比讲解! Linux中文件变成可以使用两种方法 1.Linux的系统调用 2.C语言函数的调用 前者是依赖于操作系统的 后者 ...

  7. C语言创建多个文件,命名,打开写入关闭及解决乱码问题

    在我自己找了多种方法才解决问题后,我决定把这次过程记录下来,头疼. 代码 #include <stdio.h> #include <stdlib.h> #include< ...

  8. python读取整个txt文件-python怎么读取txt文件内容

    读取文件: 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() 'hello python! h ...

  9. Python基础入门6_文件和异常

    Python 基础入门前五篇: Python 基础入门–简介和环境配置 Python基础入门_2基础语法和变量类型 Python基础入门_3条件语句和迭代循环 Python基础入门_4函数 Pytho ...

  10. python怎么读取txt文件-python怎么读取txt文件内容

    读取文件: 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() 'hello python! h ...

最新文章

  1. .NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现
  2. 这套“人造肌腱”装备,可保护你的老腰|Science子刊
  3. 程序员应知——学习、思考与分享
  4. Linux用户、群组管理
  5. 【通知】《深度学习之摄影图像处理》配套代码开源!
  6. ASP.NET Web Pages:Chart 帮助器
  7. 【Linux】一步一步学Linux——make命令(259)
  8. hdu 2222 Keywords Search(ac自动机)
  9. php中怎么让图片没有缓存,关于项目中图片缓存的问题
  10. CentOS8安装jdk1.8
  11. 2021年中国微粉磨料市场趋势报告、技术动态创新及2027年市场预测
  12. 在XCode工程中创建bundle文件
  13. doc和docx、xls和xlsx、ppt和pptx有什么区别?
  14. 游戏程序开发的工作主要包括哪些方面
  15. XTU OJ 三角形
  16. CharField:Django文档——Model字段选项(Field Options)
  17. 华为举办首届用户精英论坛,携手共创数据存储新未来
  18. 身份证,银行卡,姓名用*号隐藏中间数字
  19. 时间序列预测框架--Darts--快速开始(下)
  20. 【Unity开发小技巧】iOS APP下载安装时,如果出现此时无法下载安装APP的字样时,一些解决思路

热门文章

  1. 181002有道扇贝每日一句
  2. 论文多个实验时VS或Unity工程需要每次新建吗?
  3. Atitit 人工智能体系树 常用技术 2. 知识图谱 知识处理系统 2 知识发现 知识图谱 1. 1.NLP 2 自然语言处理文本处理 1.1. 语言理解 分词 2 抽取 (压缩文
  4. Atitit 互联网行业如何提升收入 经济学概论读后感 attilax总结 1. 收入“四 位一体”的理论(工资、利润、利息、地租) 1 2. 提升收入,就要提升这4个象限的收入 1 3. 如
  5. Atitit 工具选型的因素与方法 attilax总结
  6. Atitit.研发团队与公司绩效管理的原理概论的attilax总结
  7. Atitit.业务系统的新特性 开发平台 新特性的来源总结
  8. paip.java UrlRewrite 的原理and实现 htaccess正则表达式转换
  9. paip.html 及css调试工具---debugbar
  10. 中国结算-金融机构服务平台(FISP平台)