对python for 文件指定行读写操作详解


Posted in Python onDecember 29, 2018

1.os.mknod(“test.txt”) #创建空文件

2.fp = open(“test.txt”,w) #直接打开一个文件,如果文件不存在则创建文件

3.关于open 模式:

详情:

w:以写方式打开,

a:以追加模式打开 (从 EOF 开始, 必要时创建新文件)

r+:以读写模式打开

w+:以读写模式打开 (参见 w )

a+:以读写模式打开 (参见 a )

rb:以二进制读模式打开

wb:以二进制写模式打开 (参见 w )

ab:以二进制追加模式打开 (参见 a )

rb+:以二进制读写模式打开 (参见 r+ )

wb+:以二进制读写模式打开 (参见 w+ )

ab+:以二进制读写模式打开 (参见 a+ )

fp.read([size]) #size为读取的长度,以byte为单位

fp.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分

fp.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。

fp.write(str) #把str写到文件中,write()并不会在str后加上一个换行符

fp.writelines(seq) #把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入,不会在每行后面加上任何东西。

fp.close() #关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。 如果一个文件在关闭后还对其进行操作会产生ValueError

fp.flush() #把缓冲区的内容写入硬盘

fp.fileno() #返回一个长整型的”文件标签“

fp.isatty() #文件是否是一个终端设备文件(unix系统中的)

fp.tell() #返回文件操作标记的当前位置,以文件的开头为原点

fp.next() #返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。

fp.seek(offset[,whence]) #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。

fp.truncate([size]) #把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

#coding: utf-8

#打开文件open(),默认只读"r".
#exp1:相对路径
f = open(".\\test001.txt") 
data = f.read()
print(data)

#exp2:绝对路径
f = open("test001.txt","r")
data = f.read()
print(data)

#exp3:绝对路径
f = open("D:\\mytest\\test001.txt")
data = f.read()
print(data)


#打开并关闭文件:
f = open("test001.txt","r")
data = f.read()
print(data)
f.close()


#写文件write()不换行:
f = open("test001.txt","w")
f.write("ddddddddddddd"+"\n")
f.close()

第一种方式读写指定行:

#写文件writelines()换行:
with open("test001.txt","w") as z:
 z.write("33333333"+"\n")
 z.write("cccccccccc"+"\n")



#读取指定行:
with open("test001.txt",'r') as x:
 line = x.readlines()
 first_line = line[0]
 second_line = line[1]
 print(first_line)
 print(second_line)

第二种方式读写指定行:

#coding: utf-8


#将文件读进列表(反复追加)中:
lines = []
with open("test001.txt","r") as y:
 for line in y:
  lines.append(line)
 y.close()

#在列表中插入文本数据:
lines.insert(0, "aaaa\n")
lines.insert(1, "bbbb\n")
print(lines)

#利用分隔符连接:
s = ''.join(lines)
print(s)

#写到文件中去:
with open("test001.txt","w") as z:
 z.write(s)
 z.close()

#再次读取文件中的数据:
with open("test001.txt","r") as x:
 data = x.read()
 print(data)
 x.close()
#清空列表:
del lines[:]
print(lines)

第三种方式读写指定行:

#coding: utf-8


#在列表中插入文本数据:
lines = []
a = "abc123"
b = "edf456"
lines.insert(0, a)
lines.insert(1, b)
print(lines)

#利用分隔符连接:
s = '\n'.join(lines)

#写到文件中去:
with open("test001.txt","w") as z:
 z.write(s)
 z.close()

#再次读取文件中的数据:
with open("test001.txt","r") as x:
 data = x.read()
 print(data)
 x.close()

#清空列表:
# del lines[:]
# print(lines)

第三种的小改方式:

#在列表中插入文本数据:
lines = []
lines.insert(0, "aaaa\n")
lines.insert(1, "bbbb\n")
print(lines)

#利用分隔符连接:
s = ''.join(lines)

#写到文件中去:
with open("test001.txt","w") as z:
 z.write(s)
 z.close()

#再次读取文件中的数据:
with open("test001.txt","r") as x:
 data = x.read()
 print(data)
 x.close()

#清空列表:
# del lines[:]
# print(lines)

备注:第一种方式,比较生硬,不推荐。第二种方式可以反复追加内容,第三种方式只追加一次,不会重复。

以上这篇对python for 文件指定行读写操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python绘制简单折线图代码示例
Dec 19 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
python脚本实现验证码识别
Jun 07 Python
python中logging模块的一些简单用法的使用
Feb 22 Python
python时间序列按频率生成日期的方法
May 14 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
python plotly绘制直方图实例详解
Jul 22 Python
Python模拟登录之滑块验证码的破解(实例代码)
Nov 18 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
Python3+Appium安装及Appium模拟微信登录方法详解
Feb 16 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 Python
写好Python代码的几条重要技巧
May 21 Python
Python实现二维曲线拟合的方法
Dec 29 #Python
python修改txt文件中的某一项方法
Dec 29 #Python
神经网络相关之基础概念的讲解
Dec 29 #Python
Python实现的KMeans聚类算法实例分析
Dec 29 #Python
Python使用pyshp库读取shapefile信息的方法
Dec 29 #Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 #Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 #Python
You might like
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
2014/08/22 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
javascript 节点遍历函数
2010/03/28 Javascript
jquery 的 $("#id").html() 无内容的解决方法
2010/06/07 Javascript
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
vue组件name的作用小结
2018/05/23 Javascript
vue底部加载更多的实例代码
2018/06/29 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
pip install urllib2不能安装的解决方法
2018/06/12 Python
python读写文件write和flush的实现方式
2020/02/21 Python
Python接口开发实现步骤详解
2020/04/26 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
银行员工职业规划范文
2014/01/21 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
大学生党员学习焦裕禄精神思想汇报
2014/09/10 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书