1、文件的打开模式:

r:读模式;
w:写模式;
a:追加模式,在文件最后写入内容;
r+:读写模式,读取文件内容,并在末尾添加记录;
w+:写读模式,新建文件并添加记录;
a+:追加写读;
rb:以二进制格式读取文件;
rw:以二进制格式写入文件

注:读模式时,不能写,写模式时,不能读。

格式:

open('文件名','模式',encoding='编码格式')   注:默认r模式,一般使用utf-8编码格式

例:open('file_1','r',encoding='utf-8')

2、常用操作:

f.tell() #获取文件中当前“光标”位置
f.seek(5) #光标定位到指定位置
f.encoding #当前文件的编码格式
f.fileno() #返回文件在内存中的编号
f.name #当前打开文件的文件名
f.seekable() #判断光标在文件是否可移动
f.readable() #判断文件是否可读
f.writable() #判断文件是否可写
f.flush() #强制刷新,把内存里的内容立即写入硬盘
f.truncate(10) #从第10个字符开始清除后面数据
f.close() #关闭文件,文件读取结束自动关闭

3、示例代码:

#!/user/bin env python
# author:Simple-Sir
# time:20180917
# 文件操作 # 注:读模式时,不能写,写模式时,不能读。
# r:读模式;
# w:写模式;
# a:追加模式,在文件最后写入内容;
# r+:读写模式,读取文件内容,并在末尾添加记录;
# w+:写读模式,新建文件并添加记录
# a+: 追加写读
# rb:以二进制格式读取文件
# rw:以二进制格式写入文件 print('---------- r 读模式 只能读取文件 ---------------------------------')
f = open('file_1','r',encoding='utf-8') # 以读模式(默认模式)打开文件
print(f.read()) # 读取所有文件内容,第二次读取从最后位置开始读取。 # 注:open中写模式(w)时创建一个新文件,若已存在,则覆盖之前的文件。
print('---------- w 写模式 只能写入文件,不能读取文件内容----------------')
f = open('file_1','w',encoding='utf-8') #以写模式创建一个新文件,若已存在,则覆盖之前的文件
f.write('人生总会有不期而遇的温暖,\n')
f.write('和生生不息的希望。')
#--- 读取文件内容 -----
f = open('file_1','r',encoding='utf-8')
print(f.read()) print('---------- a 追加模式 往文件中添加内容 ----------------------------')
f = open('file_1','a',encoding='utf-8')
f.write('\n且将新火试新茶,\n')
f.write('诗酒趁年华。')
f = open('file_1','r',encoding='utf-8') # 读取
print(f.read()) print('----------- r+ 读写,读取文件内容,并在末尾添加记录--------')
f = open('file_1','r+',encoding='utf-8')
print(f.readline())
print(f.readline())
print(f.readline())
f.write('-------读取文件内容,并在末尾添加记录 ----') #在文件末尾添加记录 print('----------- w+ 写读,新建文件并添加记录--------')
f = open('file_1','w+',encoding='utf-8')
print(f.readline())
print(f.readline())
print(f.readline())
f.write('-------新建文件并添加记录 ----') #在文件末尾添加记录
f.write('添加第二条') print('----------- a+ 追加写读 --------')
f = open('file_1','a+',encoding='utf-8')
print(f.readline())
print(f.readline())
f.write('------- a+ 添加记录 ----') #在文件末尾添加记录 print('-------------- rb 以二进制格式读取文件 -------------')
f = open('file_1','rb')
print(f.readline())
print(f.readline()) print('-------------- wb 以二进制格式写文件 -------------')
f = open('file_1','wb')
f.write('hello binary'.encode()) print(f.readline()) #读一行,默认读取第一行,可通过seek()指定读取行
#for循环 读取5行
for i in range(5):
print(f.readline()) print(f.readlines()) #把文件内容变成列表,每一行一个元素
#for循环读取文件内容
for i in f.readlines():
print(i.strip()) # strip 取消左右空格和换行 print('------- 低效率循环读取文件内容,第10行不打印 ------')
for index,i in enumerate(f.readlines()):
if index == 9:
print('------- 这是第{0}行,不打印 -----'.format(index+1))
continue
print(index + 1, i.strip()) print('------- 高效率循环读取文件内容,第10行不打印 -------')
count = 0
for i in f:
if count == 9:
print('------- 这是第{0}行,不打印 -----'.format(count+1))
count += 1
continue
print(i.strip())
count += 1 print(f.tell()) #获取文件中当前“光标”位置
f.seek(5) #光标定位到指定位置
print(f.encoding) #当前文件的编码格式
print(f.fileno()) #返回文件在内存中的编号
print(f.name) #当前打开文件的文件名
print(f.seekable()) #判断光标在文件是否可移动
print(f.readable()) #判断文件是否可读
print(f.writable()) #判断文件是否可写
print(f.flush()) #强制刷新,把内存里的内容立即写入硬盘
f.truncate(10) #从第10个字符开始清除后面数据
f.close() #关闭文件,文件读取结束自动关闭

文件常用操作

 4、修改文件内容(整行修改):

# 整行修改(实际上是新建一个文件,把源文件及修改后的内容存进去)
f = open('file_a','r',encoding='utf-8')
f_new = open('file_a.new','w',encoding='utf-8')
for i in f:
if '诗酒趁年华。' in i:
i = i.replace('诗酒趁年华。','替换值。')
f_new.write(i)
f.close()
f_new.close()

5、with as 自动关闭文件

  #注:python规范:一行代码不能超过80个字符, 可使用\换行继续
#自动关闭文件

#打开一个文件
with open('file_a','r',encoding='utf-8') as f:
print(f.readline())
#打开多个文件用逗号隔开
with open('file_a') as f1,\
open('file_b') as f2:
print(f1.readline())
print(f2.readline())

初识python: 文件操作的更多相关文章

  1. Python基础篇【第2篇】: Python文件操作

    Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...

  2. [Python学习笔记][第七章Python文件操作]

    2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...

  3. Python文件操作与函数目录

    文件操作 python文件操作 函数 Python函数学习——初步认识 Python函数学习——作用域与嵌套函数 Python函数学习——匿名函数 python内置函数 Python函数学习——递归 ...

  4. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

  5. day8.python文件操作

    打开和关闭文件 open函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file = open(file_name [, access_ ...

  6. 关于python 文件操作os.fdopen(), os.close(), tempfile.mkstemp()

    嗯.最近在弄的东西也跟这个有关系,由于c基础渣渣.现在基本上都忘记得差不多的情况下,是需要花点功夫才能弄明白. 每个语言都有相关的文件操作. 今天在flask 的例子里看到这样一句话.拉开了文件操作折 ...

  7. Python之路Python文件操作

    Python之路Python文件操作 一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r&qu ...

  8. python 文件操作 r w a

    python基础-文件操作   一.文件操作 对文件操作的流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件       打开文件时,需要指定文件路径和以何等方式打开文件, ...

  9. Python:文件操作技巧(File operation)(转)

    Python:文件操作技巧(File operation) 读写文件 # ! /usr/bin/python #  -*- coding: utf8 -*- spath = " D:/dow ...

  10. 小学生都能学会的python(文件操作)

    小学生都能学会的python(文件操作) 1. open("文件路径", mode="模式", encoding="编码") 文件的路径: ...

随机推荐

  1. bootstrapTable频繁向后台接口发请求

    当bootstrapTable出现这样的问题,是因为查询到的数据行数为空,而后台返回的总行数又不为0时,就会疯狂地往接口发请求

  2. 访问者模式(Visitor Pattern)——操作复杂对象结构

    模式概述 在软件开发中,可能会遇到操作复杂对象结构的场景,在该对象结构中存储了多个不同类型的对象信息,而且对同一对象结构中的元素的操作方式并不唯一,可能需要提供多种不同的处理方式,还有可能增加新的处理 ...

  3. Mysql配置 主从同步

    目录 一.准备 二.操作 主数据库操作 从服务器操作 一.准备 1.主从数据库版本最好一致 2.主从数据库内数据保持一致,若不一致,可将从库中所有数据删除,并将主库全部数据导入进去 主数据库:182. ...

  4. GSS API

    Detail:http://docs.oracle.com/cd/E24847_01/html/E22200/overview-61.html GSS-API 介绍 使用 GSS-API,程序员在编写 ...

  5. 多个工作簿拆分(Excel代码集团)

    一个文件夹里有N个工作簿,每个工作簿中包括N个工作表,将各个工作表拆分成工作簿,命名为每个工作簿里第一个工作表的A列和B列. 工作簿.工作表数量不定,表内内容不限,拆分后保存于当前文件夹下的" ...

  6. 替换资源(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 还是那个熟悉的某吃货甲,一天之内给他分配了9.6个工时的吃量,这太不厚道了哈,人家一个人又要开吃又要喝汤,这怎么吃得消呢? ...

  7. 一站式云原生在线研发平台 StarOS 种子用户邀请计划正式开启!

    云时代的开发者,你好: 你是否也曾畅想过,关于云的未来? 不是作为消费者,也不是作为企业,是对于开发者而言,云会变成什么样. 同为开发者,我们常在想,我们开发了一个又一个应用,让太多人因服务在线而获益 ...

  8. CF135A Replacement 题解

    Content 有 \(n\) 个数 \(a_1,a_2,a_3,...,a_n\),试用 \(1\) ~ \(10^9\) 之间的数(除了本身)代替其中的一个数,使得这 \(n\) 个数的总和最小, ...

  9. Json解析案例-teachers数据集

    背景: 通过平台执行接口时,接口往往返回的JSON串,所以平台要能提供方便快捷的JSON解析函数. 一.Json字符串: 1 { 2 "lemon": { 3 "teac ...

  10. Elasticsearch 和 solr 的区别

    背景:它们都是基于Luence搜索服务器基础之上开发的一款优秀高性能的企业级搜索服务器.也都是基于分词技术构建的倒排索引的方式进行查询 开发语言:java 诞生时间: solr  :2004年 es ...