文件的打开方式


打开方式 详细释义
r  以只读方式打开文件。文件的指针会放在文件的开头。这是默认模式。
rb  以二进制只读方式打开一个文件。文件指针会放在文件的开头。
r+  以读写方式打开一个文件。文件指针将会放在文件的开头。(读取文件时,只能读,不能新建,如果文件没有,则会异常报错)
rb+  以二进制读写方式打开一个文件。文件指针会放在文件的开头。
w  以写入方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件
wb  以二进制写入方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件
w+  以读写方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件
wb+  以二进制读写方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件
a  以追加方式打开一个文件。如果该文件已存在,文件指针将会放在文件尾,新的内容会写入到已有内容之后,如果该文件不存在,则创建新文件来写入
ab  以二进制追加方式打开一个文件。如果该文件已存在,文件指针将会放在文件尾,新的内容会写入到已有内容之后,如果该文件不存在,则创建新文件来写入
a+  以读写方式打开一个文件,如果该文件已存在,文件指针将会放在文件尾,新的内容会写入到已有内容之后,如果该文件不存在,则创建新文件来写入
ab+  以二进制追加方式打开一个文件。如果该文件已存在,文件指针将会放在文件尾,新的内容会写入到已有内容之后,如果该文件不存在,则创建新文件来写入

文件的读操作


示例:

 1 print("->文件句柄的获取,读操作:")
 2
 3 f = open('无题','r',encoding='utf8') #此行作用就是获取文件句柄
 4 d = f.read()    #read方法读取文件所有内容
 5 f.close()
 6 print(d)
 7
 8 print('->例二:')
 9 f = open('无题','r',encoding='utf8')
10 e = f.read(9)   #read方法中索引表示读取字符数
11 f.close()
12 print(e)
13 #python3中,文件中一个中英文都占位1

运行结果:

->文件句柄的获取,读操作:
昨夜星辰昨夜风
画楼西畔桂堂东
身无彩凤双飞翼
心有灵犀一点通
->例二:
昨夜星辰昨夜风
画

文件的写操作


知识点:

    1. 写操作前,文件先格式化清空文件

    2.清空操作,在执行open的w方法后,清空

1 print("写的操作,写文件的时候,不能调用读方法,读文件的时候,不能调用写方法")
2
3 f = open('python','w',encoding='utf8')
4 f.write("I must learn python \nbecause, python is important \n")
5 f.write("java is better?")
6 f.write("maybe") #上面的语句,没有加换行符,所以输出的内容是紧接的
7 f.close()

运行结果:

打开文件后显示如下

I must learn python
because, python is important
java is better?maybe

文件的append方法


语法格式:

f = open('文件名','a','encoding = utf8')

文件这种方法为追加模式:1, 空白文件中,直接从头开始写入内容; 2 有内容的文件,会在末尾开始继续写入内容

示例:

f = open('python','a',encoding='utf8')
f.write("花开又花落")
f.close()

运行结果:

I must learn python
because, python is important
java is better?maybe花开又花落

readline 和 readlines


readline是逐行读取

readlines是全文读取


示例1 readline示例:

# -*-  coding:utf-8 -*-
'''
实际的工作中,使用的方法几乎为readline方法
'''
print("readline方法")
f = open('无题','r',encoding='utf-8')
a = f.readline()    #读取一行内容
print("此时光标位置:",f.tell())
b = f.readline()    #继续读取一行内容
print("此时光标位置:",f.tell())
print(a.strip())  #strip是字符串方法中去除空格和换行的方法
print(b.strip())

运行结果:

readline方法
此时光标位置: 23
此时光标位置: 46
昨夜星辰昨夜风
画楼西畔桂堂东

我读取的文件内容原件:

昨夜星辰昨夜风
画楼西畔桂堂东
身无彩凤双飞翼
心有灵犀一点通
南京
江苏
中国


示例2 文件内容的遍历示例:

#遍历文件,在第四行打印分割线,然后继续循环
count = 0
f = open('无题','r',encoding='utf-8')
for line in f:if count == 3:print('%%%%####%%%%')count+=1continueprint(line.strip())count+=1
f.close()

运行结果:

昨夜星辰昨夜风
画楼西畔桂堂东
身无彩凤双飞翼
%%%%####%%%%
南京
江苏
中国

 


示例3 readlines方法:

print("readlines方法,会将每行的内容组成一个列表打印")
f = open('无题','r',encoding='utf8')
c = f.readlines()
print(c)
print(id(c))
print(id(f))
for i in c:print(i.strip())
print("遍历方法")
f.seek(0) #将文件指针设置到初始位置,就是文件开头
for i in f:print(i.strip())
f.close()  #文件的操作中,close()方法一定不能忘记

运行结果:

readlines方法,会将每行的内容组成一个列表打印
['昨夜星辰昨夜风\n', '画楼西畔桂堂东\n', '身无彩凤双飞翼\n', '心有灵犀一点通\n', '南京\n', '江苏\n', '中国']
38154568
3902272
昨夜星辰昨夜风
画楼西畔桂堂东
身无彩凤双飞翼
心有灵犀一点通
南京
江苏
中国
遍历方法
昨夜星辰昨夜风
画楼西畔桂堂东
身无彩凤双飞翼
心有灵犀一点通
南京
江苏
中国

文件的tell() 和 seek()方法


示例:

f = open('无题','r',encoding='utf8')
f.read(4)
print('当前光标位置',f.tell())f.seek(10)
print('当前光标位置',f.tell())
f.close()#read时,一个中文算三个字符

运行结果:

当前光标位置 12
当前光标位置 10

文件操作之flush方法


import sys,timefor i in range(20):sys.stdout.write("#")sys.stdout.flush()time.sleep(1)

truncate方法


f = open('test','w')
f.write("hello")
f.write("\n")
f.write("python")
f.flush() #这样不用执行close方法,内存中的数据,就会写入到disk
f.close()f = open('test','a')
f.truncate(2)  #截断方法,光标从2开始往后截取
f.close()

文件常用的方法汇总如下:

#-- 文件基本操作  output = open(r'C:\spam', 'w')          # 打开输出文件,用于写  input = open('data', 'r')               # 打开输入文件,用于读。打开的方式可以为'w', 'r', 'a', 'wb', 'rb', 'ab'等  fp.read([size])                         # size为读取的长度,以byte为单位  fp.readline([size])                     # 读一行,如果定义了size,有可能返回的只是一行的一部分  fp.readlines([size])                    # 把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长。  fp.readable()                           # 是否可读  fp.write(str)                           # 把str写到文件中,write()并不会在str后加上一个换行符  fp.writelines(seq)                      # 把seq的内容全部写到文件中(多行一次性写入)  fp.writeable()                          # 是否可写  fp.close()                              # 关闭文件。  fp.flush()                              # 把缓冲区的内容写入硬盘  fp.fileno()                             # 返回一个长整型的”文件标签“  fp.isatty()                             # 文件是否是一个终端设备文件(unix系统中的)  fp.tell()                               # 返回文件操作标记的当前位置,以文件的开头为原点  fp.next()                               # 返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。  fp.seek(offset[,whence])                # 将文件打操作标记移到offset的位置。whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。  fp.seekable()                           # 是否可以seek  fp.truncate([size])                     # 把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。  for line in open('data'):   print(line)                         # 使用for语句,比较适用于打开比较大的文件  open('f.txt', encoding = 'latin-1')     # Python3.x Unicode文本文件  open('f.bin', 'rb')                     # Python3.x 二进制bytes文件  # 文件对象还有相应的属性:buffer closed encoding errors line_buffering name newlines等  

转载于:https://www.cnblogs.com/wuzhiming/p/7806926.html

python3速查参考- python基础 5 - 常用的文件操作相关推荐

  1. python3速查参考- python基础 3 - - while循环实例 + Continue break的应用 + 列表的初步学习...

    while语句的应用 实例如下: 1 """ 2 述求:用户登录系统,最多只能登录三次 3 第三次失败后,程序终止 4 5 """ 6 us ...

  2. Python基础(十三)——文件操作(open函数、close函数)

    本文以Python3以上为学习基础. 目录 1. 使用文件操作第一原则 2.open函数 2.1.文件打开模式 2.1.1.只读模式打开文件--只读(r) 2.1.2.读写模式打开文件--读写模式(r ...

  3. Python基础:集合与文件操作

    集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系 ...

  4. 2021-09-08 python基础知识学习:文件操作和os模块

    文章目录 1.文件操作(IO技术) (1)打开文件 (2)编码 (3)close()关闭文件流 (4)文本文件读取 (5)二进制文件的读写 (6)文件对象常用的方法和属性 (7)使用pickle序列化 ...

  5. 享学课堂python基础学习day15之文件操作

    我是一个22年8月加入享学课堂的学生,主要学习python基础和爬虫课程,学到现在,发现以前的学习知识容易忘记,听了老师的建议之后,决定在CSDN写博客,可以复习自己学过的知识,废话不多说,文件操作里 ...

  6. Python基础-2-数据类型文件操作

    8.细讲列表的增删改查 >>> name = [] >>> name. #tab >>> name. name.append( name.coun ...

  7. Day2 - Python基础2作业【文件操作--购物车程序(用户操作及商户操作)】

    1 # ----user.txt---- 2 3 {'已购商品': '', '消费记录': '', '余额': 0} 4 5 6 # ----commodity.txt---- 7 8 iPhone, ...

  8. Python基础(三)文件操作和处理json

    文件操作步骤:1.有一个文件,2.打开文件,3.读写修改文件,4.关闭文件 一.有一个文件:新建或导入文件 二.打开文件:如果是新建的文件默认和py文件在同一个目录:如果是打开文件,要将文件放在py同 ...

  9. Python学习小组课程P2-Python基础(2)文件操作

    一.前言 注意:此为内部小组学习资料,非售卖品,仅供学习参考. 本系列课程: Python学习小组课程-课程大纲与Python开发环境安装 Python学习小组课程P1-Python基础(1)语法与数 ...

  10. Python包下载常用whl文件汇总:最全的Python whl集合

    Python包下载常用whl文件汇总:最全的Python whl集合 对于Python开发者来说,我们经常需要下载各种第三方库或包,而这些包往往需要我们手动下载并安装.在Python中,我们通常使用p ...

最新文章

  1. 使用Devstack部署neutron网络节点
  2. 了解 MongoDB 看这一篇就够了
  3. VUE3.x(v-model)数据双向绑定指令
  4. python替换文本文件单词_Python:如何替换文本文件中一行的最后一个单词?
  5. c# gerber文件读取_必须收藏的一篇关于:AD18生成gerber文件及用CAM350读取gerber教程...
  6. 戴尔服务器调节风扇转速
  7. ctfmon是什么启动项_启动项里找不到ctfmon
  8. jQuery实现表单提交验证
  9. idea快速查找一个类或类中方法名和变量
  10. 小米android6.01 root,小米 小米6(安卓8.0)获取Root权限服务含精简系统方案
  11. iOS开发之支付宝集成
  12. 【UOJ #390】【UNR #3】百鸽笼(指数型生成函数,二项式定理)
  13. Windows 下 android自动打包 volley项目
  14. On the Grasshopper and the Cricket --John Keats 蝈蝈与蟋蟀 济慈
  15. 现在的美女都不喜欢程序员
  16. Java中的JSP是什么?如何实现JSP
  17. 什么是B/A股(亿)?
  18. 使用jackson解析json数据详讲
  19. python使用pywin32库将ppt导出为高清图片
  20. testlink整合redmine

热门文章

  1. centos 图形模式与命令行模式设置
  2. js中的var和new
  3. 【译】jquery基础教程(jQuery Fundamentals)——(第一部分)概述
  4. Android 保持屏幕常亮
  5. 纯CSS圆角框3-圆角化图片
  6. WebUserControl简单事件定义
  7. Matlab 用sort函数排序 二维数组
  8. 如何使用 Cisdem Video Converter 在 Mac 上将 MOV 转换为 MP3
  9. macos big sur更新后,这些小组件原来这么好用
  10. codeforce 985C Liebig's Barrels