Python语言文件基本操作
小标 2019-01-17 来源 : 阅读 599 评论 0

摘要:本文主要向大家介绍了Python语言文件基本操作,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言文件基本操作,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

Python文件基本操作

文件的读写方法有六种:W,R,A,W+,A+,R+

读模式:

# -*-coding:utf-8 -*-__author__ = 'xiaojiaxin'__file_name__ = 'file1'import time#文件操作三步走:1.创建;2.操作;3.关闭文件#文件操作六种模式:r(读模式),w(覆盖写模式),a(追加写模式),r+,w+.a+f=open('小重山',mode='r',encoding='utf=8')   #创建一个文件r1=f.read()   #进行相应的操作print(r1)f.close()     #关闭文件,将缓存区的数据存入磁盘,如果不自己关,python可以关,但是不可靠#输出:# 昨夜寒蛩不住鸣。# 惊回千里梦,已三更。# 起来独自绕阶行。# 人悄悄,帘外月胧明。# 白首为功名,旧山松竹老,阻归程。# 欲将心事付瑶琴。# 知音少,弦断有谁听。

写模式:

f1=open('小重山2',mode='w',encoding='utf-8')   #创建文件的时候文件里面内容全部清空w1=f1.write("wahaha")print(w1)f1.fileno()w2=f1.write("123\n")print(w2)time.sleep(50)       #放在内存里50秒f1.close()   #关闭文件,将缓存区的数据存入磁盘#输出:wahaha123    没有空格,没有换行

追加模式a

f2=open("小重山2",mode='a',encoding="utf-8")a1=f2.write("一二三")print(a1)f2.close()   #关闭文件,将缓存区的数据存入磁盘

R+模式:
特点:r+模式该怎么读就怎么读,写只能在最后写

# -*-coding:utf-8 -*-__author__ = 'xiaojiaxin'__file_name__ = 'rjia_wjia_ajia'#+模式  R+ w+ a+#r+模式该怎么读就怎么读,写只能在最后写f1=open("小重山",mode="r+",encoding="utf-8")print(f1.readline())#输出昨夜寒蛩不住鸣。f1.write("123")    #123写到了最末尾f1.close()# 昨夜寒蛩不住鸣。# 惊回千里梦,已三更。# 起来独自绕阶行。# 人悄悄,帘外月胧明。# 白首为功名,旧山松竹老,阻归程。# 欲将心事付瑶琴。# 知音少,弦断有谁听。123

W+模式
特点:创建即覆盖清空,光标在开头

#w+f2=open("小重山2",mode="w+",encoding="utf-8")print(f2.tell())  #0   因为写模式一创建就清空原有的文件print(f2.readline())   # 表示读不了print(f2.tell()) #0f2.write("123")    #123写到了最末尾print(f2.tell())  #光标在3字节上f2.seek(0)        #把指针移到0位置print(f2.readline())  #输出123f2.close()

a+模式
特点:光标在结尾,追加写,读数据需要用seek将指针光标移至前面

#a+f3=open("小重山3",mode="a+",encoding="utf-8")print(f3.tell())  #222   光标在结尾处print(f3.readline())   # 表示读不了print(f3.tell()) #222f3.write("123")    #123写到了最末尾print(f3.tell())  #225 光标在结尾处f3.seek(0)        #把指针移到0位置print(f3.readline())  #输出123f3.close()

实例:R、R+模式不能修改数据问题:

#final:r 、r+模式不能在中间写或修改数据,只能在最后追加写!不能修改原有的数据f4=open("小重山4",mode="r+",encoding="utf=8")counter1=0for line in f4:    counter1+=1    if counter1==3:  #希望在第三行加入别的数据        #line=''.join([line.strip(),'i like it!'])        f4.write("123")f4.close()# 昨夜寒蛩不住鸣。# 惊回千里梦,已三更。# 起来独自绕阶行。# 人悄悄,帘外月胧明。# 白首为功名,旧山松竹老,阻归程。# 欲将心事付瑶琴。# 知音少,弦断有谁听。123

怎么解决r+模式不能修改原文件问题:重新建一个文件,不停的拷贝到新文件,进行修改处理
实例: r+模式不能修改原文件的解决办法

# -*-coding:utf-8 -*-__author__ = 'xiaojiaxin'__file_name__ = 'modifyfile_inr+'#把f1的数据写进f2,并且修改第三行数据,加上"i add it "counter1=0f2=open("小重山2",mode="w",encoding="utf-8")#小重山是完整的诗f1=open("小重山",mode="r+",encoding="utf-8")#小重山2为空for i in f1:    j=i    counter1+=1    if counter1==3:        j=''.join([j.strip(),"i add it",'\n'])    f2.write(j)    print(j)f1.close()f2.close()

读操作:

# -*-coding:utf-8 -*-__author__ = 'xiaojiaxin'__file_name__ = 'file2'f=open("小重山",mode="r",encoding="utf-8")readline1=f.readline()   #默认打印出换行符print(readline1)# 昨夜寒蛩不住鸣。#readline2=f.readline()print(readline2)# 惊回千里梦,已三更。#print(f.read(5))    #读出5个字符# 起来独自绕print(f.readlines(4))#['阶行。\n', '人悄悄,帘外月胧明。\n']print(f.readlines())    #变成列表#['白首为功名,旧山松竹老,阻归程。\n', '欲将心事付瑶琴。\n', '知音少,弦断有谁听。']f.close()# 输出:# 昨夜寒蛩不住鸣。## 惊回千里梦,已三更。## 起来独自绕#['阶行。\n', '人悄悄,帘外月胧明。\n', '白首为功名,旧山松竹老,阻归程。\n', '欲将心事付瑶琴。\n', '知音少,弦


文件遍历

f2=open("小重山",mode="r",encoding="utf-8")for i in f2.readlines():    print(i.strip())    #strip去掉字符串首尾的空格# 昨夜寒蛩不住鸣。# 惊回千里梦,已三更。# 起来独自绕阶行。# 人悄悄,帘外月胧明。# 白首为功名,旧山松竹老,阻归程。# 欲将心事付瑶琴。# 知音少,弦断有谁听。f2.close()

添加需求:在诗的第六行加一个字符串

#在诗的第六行加一个字符串:f3=open("小重山",mode="r",encoding="utf-8")counter=0for i in f3.readlines():    counter+=1    if counter==6:        i=''.join([i.strip(),"i like it!"])  #尽量不用+,用join方法做字符串拼接    print(i.strip())f3.close()# 昨夜寒蛩不住鸣。# 惊回千里梦,已三更。# 起来独自绕阶行。# 人悄悄,帘外月胧明。# 白首为功名,旧山松竹老,阻归程。# 欲将心事付瑶琴。i like it!# 知音少,弦断有谁听。


本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程