当前位置: 首页 > news >正文

python文件操作

为什么要使用文件编码?

*文件的读取

 open() 和 readlines()

open() 打开文件

readlines() 读取全部的内容,读出的内容带换行符

打开文件 注意路径要用左/

注意如果连续调用read() / readlines (),下次开始读取会在上次结束的地方继续读

#打开文件 注意路径要用左/
f = open("C:/Users/kwok/Desktop/test.txt", "r",encoding="utf-8")
print(type(f))
#读取文件
#注意如果连续调用read(),下次开始读取会在上次结束的地方继续读
#content1 = f.read(10) #读取10个字节
#content2 = f.read() #读取全部字节

#print(f"读取10个字节的的结果是:{content1}")
#print(f"读取全部内容的结果是:{content2}")
#返回的是列表对象
lines= f.readlines()
print(type(lines))
print(f"lines的内容是{lines}")

 返回结果

readline()

一行一行读数据

*for循环读取文件行
#打开文件 注意路径要用左/
f = open("C:/Users/kwok/Desktop/test.txt", "r",encoding="utf-8")
print(type(f))

for line in f:
    print(f"{line}")


#关闭文件
f.close()

*with open()

with open自动就close()关闭文件了


#with open自动就close()关闭文件了
with open("C:/Users/kwok/Desktop/test.txt","r",encoding="utf-8") as f:
    for line in f:
        print(f"{line}")

 总结

文件的写出

open() 的 w模式 如果在写入文件的时候,文件不存在,会自动创建新的文件

如果文件里面原来有内容,会把原内容清空


#open()的w模式:如果在写入文件的时候,文件不存在,会自动创建新的文件
#如果文件里面原来有内容,会把原内容清空
f = open("C:/Users/kwok/Desktop/test.txt","w",encoding="utf-8")
#write()写入缓存 
f.write("hello world")
# flush()刷新写入硬盘
#f.flush()
#关闭文件,内置了flush()的刷新写入硬盘
f.close()


文件的追加

open()的a模式:如果在写入文件的时候,文件不存在,会自动创建新的文件

如果文件里面原来有内容,会在原内容之后追加


#open()的a模式:如果在写入文件的时候,文件不存在,会自动创建新的文件
#如果文件里面原来有内容,会在原内容之后追加
f = open("C:/Users/kwok/Desktop/test.txt","a",encoding="utf-8")
#write()写入缓存 , \n表示换行
f.write("\nhello happy")
# flush()刷新写入硬盘
#f.flush()
#关闭文件,内置了flush()的刷新写入硬盘
f.close()


 案例: 文件备份

题目要求



fr = open("C:/Users/kwok/Desktop/bill.txt","r",encoding="utf-8")
fw = open("C:/Users/kwok/Desktop/bill.txt.bak","w",encoding="utf-8")

line = fr.readline()
for line in fr:
    #移除字符串两端的‌空格
    line = line.strip()
    if line.split(",")[3]=="测试":
        continue  #continue进入下一次循环

    fw.write(line)
    fw.write("\n")

fr.close()
fw.close()



相关文章:

  • 医脉云枢:中医药典籍知识图谱与非遗传承多维可视化系统
  • 英文分词方法对比:NLTK等五种分词工具的性能分析与适用场景
  • 浅浅初识AI、AI大模型、AGI
  • 汽车无人驾驶系统中的防撞设计
  • vue3 父组件调用子组件的方法/父组件获取子组件的值
  • 内容中台是什么?内容管理平台解析
  • 选择排序法
  • 【Qt QML】QML鼠标事件(MouseArea)
  • C#并发集合-ConcurrentQueue
  • 2024年第十五届蓝桥杯大赛软件赛省赛Python大学A组真题解析《更新中》
  • kkfileview部署
  • 0x04 jdbc和mybatis
  • 初阶数据结构(C语言实现)——3顺序表和链表(1)
  • 腾讯游戏完成架构调整 IEG新设五大产品事业部
  • 迷你世界脚本生物接口:Creature
  • Navicat连接虚拟机数据库详细教程
  • PAT乙级(1045 快速排序)C语言详解
  • 基于SpringBoot+Vue的医院挂号管理系统+LW示例参考
  • 【UI设计——陕西红富士苹果海报分享】
  • 【深度学习】Hopfield网络:模拟联想记忆
  • 费高云不再担任安徽省人民政府副省长
  • 彭丽媛同巴西总统夫人罗桑热拉参观中国国家大剧院
  • 检疫期缩减至30天!香港优化内地进口猫狗检疫安排
  • 视频丨美国两名男童持枪与警察对峙,一人还试图扣动扳机
  • 福州千余公共道路泊车位装“智能地锁”续:运营公司被责令改正并罚款
  • 多家中小银行存款利率迈入“1时代”