python基础——文件读写

 打开文件

内置函数open/with open 打开文件
复制代码
'''open'''
f = open(r'E:\python\学习.txt', 'r', encoding='gbk')
print(f.read())
f.close()

'''with open'''
with open(r'E:\python\学习.txt', 'r', encoding='gbk') as f:  # with之后会自动关闭f,utf-8报错的话可以换gbk试下
    data = f.read()  # 读全部
    # data=f.readline() #读一行
    f.seek(0)  # read将内容全部读了出来,readline则没有读出任何内容。原因是read读完之后,文件指针到了文件的末尾,此时readline接着从这个位置开始读,肯定是没内容的。因此有时需要调整文件指针的位置
    data = f.readlines()  # 读全部到list
    print(data)
复制代码

1.1 encoding:

   gbk:windows中文版的默认编码
   utf-8: 现代推荐的统一编码
   注:操作二进制文件时,无需设置编码

1.2 mode:

1.3 写入文件

write:写入内容
writelines:写入多行
 

1.4 读取内容

read:读取全部内容
readline: 读取一行
readlines:读取所有行,输出为列表

 

举例

复制代码
'''open'''
f = open(r'E:\python\学习.txt', 'r', encoding='gbk')
print(f.read())
f.close()

'''with open'''
with open(r'E:\python\学习.txt', 'r', encoding='gbk') as f:  # with之后会自动关闭f,utf-8报错的话可以换gbk试下
    data = f.read()  # 读全部
    # data=f.readline() #读一行
    f.seek(0)  # read将内容全部读了出来,readline则没有读出任何内容。原因是read读完之后,文件指针到了文件的末尾,此时readline接着从这个位置开始读,肯定是没内容的。因此有时需要调整文件指针的位置
    data = f.readlines()  # 读全部到list
    print(data)

'''读写r+,覆盖写'''
with open(r'E:\python\学习.txt', 'r+') as f:
    f.write("开心")
    f.seek(0)
    print(f.read())

'''w写,清空写'''
with open(r"E:\python\学习1.txt", 'w') as f:  # 文件不存在时自动创建,清空原内容写
    f.write('柚柚长高高')

'''w+写读,清空写'''
with open(r"E:\python\学习2.txt", 'w+') as f:  # 文件不存在时自动创建,清空原内容写
    f.write('柚柚长高高')
    f.seek(0)  # 光标移动到开头,否则读不到东西
    print(f.read())

'''a追加写'''
with open(r'E:\python\学习.txt', 'a') as f:
    data = f.write("\n柚柚很可爱")

'''a+追加写读'''
with open(r'E:\python\学习.txt', 'a+') as f:
    data = f.write("\n柚柚叫妈妈")
    f.seek(0)
    print(f.read())

'''文件修改'''
with open(r'E:\python\username.txt', 'a+', encoding='utf-8') as f:
    new_str = ''
    f.seek(0)
    for i in f:
        str = "li_" + i
        new_str = new_str + str
    f.seek(0)
    f.truncate()  # 清空文件
    f.write(new_str)
    f.flush()  # 刷新缓冲区

'''备份修改'''

import os with open(r'E:\python\username.txt', 'r', encoding='utf-8') as fr, open(r'E:\python\username1.txt', 'w', encoding='utf-8') as fw: fr.seek(0) for line in fr: new_fr = line.replace('1', '') fw.write(new_fr) os.remove(r'E:\python\username.txt') os.rename(r'E:\python\username1.txt', r'E:\python\username.txt') with open(r'E:\python\username.txt', 'a+', encoding='utf-8') as f: f.seek(0) for i in f: # 文件可类似序列一样,一行行的遍历 print(i)
复制代码

 

posted @   奋斗的sunny  阅读(97)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示