文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python---文件操作

2023-01-31 07:34

关注
一、对文件操作流程
1.打开文件,得到文件句柄并赋值给一个变量
2.通过文件句柄对文件进行操作
3.关闭文件


二、文件打开模式
f = open("file_test","r",encoding = "utf-8")    #打开文件,“读模式”,只能读,得到文件句柄并赋值给一个变量
print(f.read())                     #读文件所有内容,读完之后文件光标跳到最后,文件大时慎用
f.close()

f1 = open("file_test","w",encoding="utf-8")     #写模式,会新建一个file_test文件,再往里写入
f1.write("-------------")
f1.close()

f2 = open("file_test","a",encoding="utf-8")     #追加模式,在原文件内容最后追加,无原文件则新建
f2.write("-------------")
f2.close()

f3  = open("file_test","r+",encoding="utf-8")    #读写模式,写在原文件内容最后追加,无原文件则新建
print(f3.readline())                  #按行读
print(f3.readline())
print(f3.readline())                  #打印前三行,这个时候光标移动到第三行位置
print(f3.tell())                    #打印光标位置
f3.write("--------------")               #但是写入还是文件内容最后写入
f3.close()

f4  = open("file_test","w+",encoding="utf-8")    #写读模式,,只要是“写在前”都会建一个新文件,在写入
f4.write("----------------------\n")
f4.write("----------------------\n")
f4.write("----------------------\n")
f4.seek(10)                       #光标移动到10的位置
f4.write("test4")                    #再写入会将原内容覆盖
f4.seek(0)                        #将光标移动到开头的位置
print(f4.read())
f4.close()
#输出
#----------ni hao -----
#----------------------
#----------------------

f5  = open("file_test","a+",encoding="utf-8")    #追加读模式,在原文件内容最后追加,无原文件新建
f5.write("----------------------\n")
f5.write("----------------------\n")
f5.write("----------------------\n")
f5.seek(10)                       #光标移动到10的位置
f5.write("test5")                    #再写入会在文件内容最后写入
f5.seek(0)
print(f5.read())
f5.close()

f6  = open("file_test","rb")                 #以二进制文件格式读这个文件
print(f6.readline())
print(f6.readline())
print(f6.readline())
f6.close()

f7  = open("file_test","ab")                 #以二进制文件格式追加这个文件
f7.write("-------------------\n".encode())       #encode 将str字符转换为bytes
f7.write("-------------------\n".encode())
f7.write("-------------------\n".encode())
f7.close()

f8  = open("file_test","wb")                 #以二进制文件格式写这个文件
f8.write("-------------------\n".encode())       #encode 将str字符转换为bytes
f8.write("-------------------\n".encode())
f8.write("-------------------\n".encode())
f8.close()


#注:还有rU或r+U模式,"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)

三、文件循环

#按行循环,并且将第五行替换
f = open("file_test","r",encoding="utf-8")
count = 0
for line in f:
    count += 1
    if count == 5:
        print("----分割线----")
        continue
    print(line.strip())                           #strip是去除行首行尾的空格符和换行符
f.close()

#f.readlines()                                    #切记用f.readlines是先将文件转换为列表,如果文件太大时对内存消耗太大

四、文件的修改

#打开一个文件,修改完了写到一个新文件
f = open("file_test","r",encoding="utf-8")
f_new = open("file_new","w",encoding="utf-8")
for line in f:                               #按行取出,每行都是一串字符串
    if "fengxiaoli" in line:
        line = line.replace("fengxiaoli","FENGXIAOLI")       #对字符串进行操作,J
    f_new.write(line)
f.close()
f_new.close()

五、flush方法

f = open("file_test","w",encoding="utf-8")
f.write("hello\n")
f.write("hello\n")
f.write("hello\n")
f.flush()       #当往文件写内容的时候,会有一个缓存,达到一个时间,一次往文件写入。如果这时候断电可能内容并没有写入成功,flush刷新会立即执行

六、with语句

#with语句作用,为了避免打开文件后忘记关闭

with open("file_test","r",encoding="utf-8") as f:          #类似于f = open("file_test","r",encoding="utf-8")

with open("file_test","r",encoding="utf-8") as f, \        #还可以同时打开多个文件
        open("file_test2","r",encoding="utf-8") as f2:

七、其他操作

f = open("file_test","r",encoding="utf-8")
print(f.tell())              #打印光标位置,按字符计数
print(f.readline())          #按行读
print(f.read(10))            #按字符读
print(f.tell())
f.seek(0)                   #把光标回到开头
f.seek(12)                  #把光标移动到12个字符的位置
print(f.readline())
print(f.encoding)           #打印文件编码

print(f.isatty())           #判断文件是否是终端设备,返回Ture or false
print(f.seekable())         #判断是否能移动文件光标,返回Ture or false
print(f.readable())         #判断文件是否可读
print(f.writable())         #判断文件是否可写


# f  = open("file_test","a",encoding="utf-8")
# f.truncate(12)      #从头开始截取多少字符



阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯