文件对象 = 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中的目录或常规文件? [重复]

    本文翻译自:how to check if a file is a directory or regular file in python? [duplicate] Possible Duplicat ...

  2. python使用方法-在Python中使用next()方法操作文件的教程

    next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如Re ...

  3. python脚本怎么使用_在Python中使用next()方法操作文件的教程

    next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如Re ...

  4. python格式文件大小_在Python中调整NVSS FITS格式文件的大小并对其进行操作

    这个问题可能主要是针对天文学家或多或少的进步. 您知道如何将NVSS拟合文件转换为仅2个(非4!)轴的拟合吗?或者,当我尝试使用astropy和其他" astro"库为Python ...

  5. python删除指定行_关于csv:删除python中的特定行和对应文件

    我想删除90%的"转向"值等于0的行.这三个图像都有一个对应的图像文件,中间,左边和右边.我也要删除它们.csv文件如下: 我编写了以下代码,以至少获取转向值为0的文件.我所需要的 ...

  6. python autocad库_在Python中加载AutoCad DWG文件

    在Python中需要渲染AutoCad DWG文件. 我的第一个问题是 1:-是否可以在python中渲染/加载dwg文件并在python环境中查看文件/图像?在 2:-我该怎么做?我尝试过使用arc ...

  7. python中with open写csv文件_Python中的CSV文件使用with语句的方式详解

    是否可以直接使用with语句与CSV文件?能够做这样的事情似乎很自然: import csv with csv.reader(open("myfile.csv")) as read ...

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

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

  9. 如何在Python中便宜地获取大文件的行数?

    我需要在python中获取一个大文件(数十万行)的行数. 内存和时间最有效的方法是什么? 目前,我这样做: def file_len(fname):with open(fname) as f:for ...

最新文章

  1. 交换机配置软件crt安装_非常详细的锐捷二层交换机配置教程,适合新手小白
  2. OpenGL cubemap 立方体贴图实例
  3. 精讲23种设计模式-基于观察者模式~设计异步多渠道群发框架
  4. 源表字段修改以后引发GoldenGate同步失败
  5. python标志变量_Python 中的 global 标识对变量作用域的影响
  6. 我去头条面试,面试官问我如何设计好API,看看我是如何吊打面试官的!
  7. 敏而好学,不耻下问。
  8. 纯新手DSP编程--5.22-总结
  9. yaf零基础学习总结7-学习使用Yaf中的插件
  10. fckeditor for php 下载,FCKeditor(HTML在线编辑器)
  11. 7-2 两个有序链表序列的合并 (20分)
  12. 手写一个词云图生成器,可调形状,可调背景颜色,可调字体色系
  13. table+jq实现日期排期表
  14. 什么平台制作表单工具效率高?
  15. sublime显示当前文件的编码格式
  16. [android源码下载索引贴】微信+二维码那都不是事......
  17. 6-7 拆分实数的整数与小数部分 (15 分)
  18. 微信小程序 - 屏幕适配
  19. 数据、数据资源及数据资产管理的区别
  20. 超好用的java反编译工具(Java Decompiler)

热门文章

  1. 夜神模拟器BURP抓包设置
  2. 人生总有太多的无奈和遗憾,
  3. 在word中如何设置翻译功能?原来word还能翻译多种语言!
  4. windows adb usb 找不到设备的解决方法
  5. 卷积神经网络常见模块
  6. Word怎么在图片上制作一个简历封面?
  7. oracle 学号为主键,oracle上机练习1
  8. [Java]简单易懂的并发教程
  9. dango 自带的用户认证
  10. 透明Png黑白图片上色(重新着色、改变成指定颜色)