python对文本文件的读写

操作步骤

第1步: 打开需要操作的文件

第2步: 对文件读或写操作

第3步: 关闭文件

  1. 第一种语法:
  2. f =open("文件路径/文件名" ,"读写模式")
  3. 读 或 写
  4. f.close()

  1. 第二种语法:
  2. with open("文件路径/文件名" ,"读写模式") as f:
  3. 读 或 写
  4. #自动关闭文件

1、打开文件

  1. f =open( file="" , mode=type, encoding=编码 )
  2. f1 =open(file=r"c:\古诗.txt",mode="r",encoding="utf-8")
  3. f1 =open(r"c:\古诗.txt","r",encoding="utf-8")

(1)读文件

  • read() 将文件的所有内容读取出来,返回一个字符串
  • readline() 读取文件中的一行内容, 返回一个字符串
  • readlines(),将文件的所有内容读取出来,返回一个列表,文件中的每行为列表中的一个元素
  • 变量=f.read()
  • 变量=f.readline()
  • 列表变量=f.readlines()
  • def fun_read1():
  •   f2 =open('咏柳.txt','r',encoding="utf-8")
  •   content =f2.read()
  •   f2.close( )
  •   print(content)
  • def fun_read2():
  •   f2 =open('咏柳.txt','r',encoding="utf-8")
  •   content =f2.readlines() #读取全部内容返回列表,文件中每一行对应列表中的一个元素
  •   f2.close( )
  •   print(content)

(2)写文件

  • write(s) 将一个字符串写入文件

  • writelines( squ ) 将一个序列对象的所有元素依次写入文

  • f.write(字符串)
  • f.writelines( 列表名 ) [ ]
  • def fun_write1():
  •   f1 =open('古诗.txt','w',encoding="utf-8")
  •   f1.write('春眠不觉晓,\n')
  •   f1.write('处处闻啼鸟。\n')
  •   f1.write('夜来风雨声,\n')
  •   f1.write('花落知多少。\n')
  •   #f.write(1314) 报错:写入的数据必须是字符串
  •   f1.close( )
  •   print("内容已写入文件")
  • def fun_write2():
  •   f1 =open('awp.txt','w',encoding="utf-8")
  •   f1.writelines(list_word)#将列表的每个元素依次写入文件
  •   f1.close( )
  •   print("内容已写入文件")
  • # write() 只能写字符串类型的数据
  • # writelines(列表) 列表中的元素也必须是字符串类型
  • # 写数据后不会换行,如需换行需在字符串尾部加入\n符

(3) 追写文件

w模式覆盖写入, 打开文件先清空内容,然后执行写入操作。 (文件不存在创建文件 )

a模块追加写入,打开文件在文件尾执行写入操作。(文件不存在创建文件 )

  1. def fun_write3():
  2.   f=open('古诗.txt','a',encoding="utf-8")
  3.   f.write('好雨知时节\n')
  4.   f.write('当春乃发生\n')
  5.   f.write('随风潜入夜\n')
  6.   f.write('润物细无声\n')
  7.   f.close()

  1. 语法: f.seek(移动多个少字节,参考位置)
  2. 参考位置:0 文件的开头作为基准位置 /1 当前位置作为基准位置 /2文件的结束将作为基准位置
  3. -移动指针到文件尾 f.seek(0,2)
  4. -移动指针到文件头 f.seek(0,0)
  5. #一个字符一个字节 一个汉字3个字节

  1. # r 读模式 文件不存在 报错 FileNotFoundError
  2. # w 覆盖写模式 文件不存在 创建再写, 文件存在覆盖(清空文件中所有内容)再写
  3. # a 追写模式 文件不存在 创建再写, 文件存在,在文件尾写

  1. # 读写模式 r+ 打开文件 默认指针在文件头
  2. #读写模式 w+ w模式 打开文件先清空 指针在文件头
  3. #读写模式 a+ a模式 默认指针在文件尾

示例1

# 1:将自己喜欢诗句写入文件中
# 2:读取这个文件的内容

def demo1():
    d1=open(r'C:\Users\aoxiang.liu\Desktop\江城子.txt','w',encoding='utf-8')
    d1.write('十年生死两茫茫,不思量,自难忘。千里孤坟,无处话凄凉。纵使相逢应不识,尘满面,鬓如霜。\n'
             '夜来幽梦忽还乡,小轩窗,正梳妆。相顾无言,唯有泪千行。料得年年肠断处,明月夜,短松岗。')
    d1.close()
    print('写入完毕')

def demo2():
    d2=open(r'C:\Users\aoxiang.liu\Desktop\江城子.txt','r',encoding='utf-8')
    s2=d2.read()
    d2.close()
    print(s2)

if __name__ == '__main__':
    demo1()
    demo2()

示例2

# 1: 将列表[["姓哈哈","5元"],["优酸乳","4元"]]中的商品写入goods.txt文件中每个商品写一行如:
#     商品名称,商品价格
#     姓哈哈 ,5元
#     优酸乳,4元
# 2: 读取这个文件的内容

goods=[["姓哈哈","5元"],["优酸乳","4元"]]
def demo6():
    d6=open(r'C:\Users\aoxiang.liu\Desktop\goods.txt','w',encoding='utf-8')
    d6.write('商品名称\t\t商品价格\n')
    for i  in range(len(goods)):
        d6.write(f'{goods[i][0]}\t\t{goods[i][1]}\n')
    d6.close()
    print('写入完毕')

def demo7():
    d7 = open(r'C:\Users\aoxiang.liu\Desktop\goods.txt','r',encoding='utf-8')
    s7 = d7.read()
    d7.close()
    print(s7)

if __name__ == '__main__':
    demo6()
    demo7()

示例3

# 1: 将字典中属于电摄班的同学按男女区分,分别放到boys.txt、girls.txt 文件中,每个名字在文件中独占一行
#  cl={"电摄班": {"路桥川": "M", "林洛雪": "F", "钟白": "F", "肖海洋": "M"}, "其他班": {"任逸帆": "M"}}
#2: 读 boys.txt、girls.txt 文件

cl={"电摄班": {"路桥川": "M", "林洛雪": "F", "钟白": "F", "肖海洋": "M"}, "其他班": {"任逸帆": "M"}}
st=cl.get("电摄班")
def demo8():
    d8 = open(r'C:\Users\aoxiang.liu\Desktop\boys.txt', 'w', encoding='utf-8')
    d8.write('名字\t\t性别\n')
    d9 = open(r'C:\Users\aoxiang.liu\Desktop\girls.txt', 'w', encoding='utf-8')
    d9.write('名字\t\t性别\n')
    for key in st:
        if st[key]=='M':
            d8.write(f'{key}\t\t{st[key]}\n')
        elif st[key]=='F':
            d9.write(f'{key}\t\t{st[key]}\n')
    d8.close()
    d9.close()
    print('写入完毕')

def demo10():
    d10 = open(r'C:\Users\aoxiang.liu\Desktop\boys.txt','r',encoding='utf-8')
    s10 = d10.read()
    d10.close()
    print(s10)

def demo11():
    d11 = open(r'C:\Users\aoxiang.liu\Desktop\girls.txt','r',encoding='utf-8')
    s11 = d11.read()
    d11.close()
    print(s11)

if __name__ == '__main__':
    demo8()
    demo10()
    demo11()
  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值