2021-05-18文件的读取和写入

文件的读取与字典

# file1 =open('d:\note1.txt')#注意转义符
# file1 =open('d:\\note1.txt')#多写一个\
# file1 =open('d:/note1.txt')#用/代替\
# file1 =open(r'd:\note1.txt')#前面加一个r
# file1=open('d:/ceshi.txt','r')  #r读取模式,w写入模式(会清空之前的内容,覆盖型),a追加写入,默认为读取,返回是str类型
# print(file1.read())
# file1.close()
#w 写入的时候,会自动生成需要写入的文件
file3=open('d:/20200906-1.txt','w')
file3.write('弱水三千,只取一瓢,覆盖写入')
file3.close()
# a和w的区别
# file2=open('d:/20200906-2.txt','a')
# file2.write('追加写入')
# file2.close()
# 缺点:r,w和a不能同时进行读取和写入

注意:
1.r+遇到不存在的文件会报错
file001.close()
file1=open(“d:/name松勤测试/字典测试9.txt”,‘r+’)
file1.write(‘使用r+写入’)
file1.read()
file1.close()
[Errno 2] No such file or directory
2.解决光标在后面补不到的问题:file1.seek(0)
file1=open(“d:/name松勤测试/字典测试9.txt”,‘r+’)
file1.write(‘使用r+写入’)
file1.seek(0) #解决光标在后面补不到的问题,让光标回到文件开头的位置,注意汉字在#内存中占两个字节,seek(2)
print(file1.read()) #读不到东西,写入之后光标在写入文件的后方
file1.close()
3.seek(m,n)函数
m表示光标向后偏移几位,m为0时表示位于文件开头,
n默认部位0,不需要写,也可以写1,2,当写1或2只有在rb模式下才生效(二进制模式)
seek(6,0) 从文件开头向右偏移6位
seek(2,1) 从光标当前位置向右偏移两位
seek(-1,2)从文件末尾向左偏移1位
file1=open(‘d:/20210524.txt’,‘rb’)
file1.seek(2,1)
print(file1.read())
file1.seek(-2,1)
print(file1.read())
file1.close()
4.关于r+,w+, a+都支持读取和写入但是有一定的区别

# 1>当文件不存在在时
# r+报错
# w+会新建一个文件
# a+会生成一个新文件
# file1=open('d:/20210524-01.txt','a+')
# file1.write('shiyonga+')
# file1.close()
# 1>当文件存在在时
# w+写入时清空之前的内容
# a+会追加写入
# r+会从前面替换
file5=open('d:/20210524-02.txt','r+')
file5.write('3')
file5.close()

5.withopenwith open的方法,和open方法一致,也可同时打开多个文件
不过不需要写close方法,另外要注意缩进,可以打印多个文件
wih open(‘d:/20210524_002.txt’) as file1,open(‘d:/20210524-02.txt’)as file2:
# file1.write(“这是with open的方式”)
# file2.seek(0)
print(file1.read())
print(file2.read())
另:
with open (‘d:/2021test003.txt’,‘w+’) as file3:
file3.write(’’’
葡萄美酒夜光杯
欲饮琵琶马上催
‘’’)
file3.seek(0)
# print(file3.read())

    # 1>
    # for i in range(4):
    #  print(file3.readline())  #打印一行
    # 2>
    a=file3.readlines()   注意:readlines 读取整个文件,返回值是一个列表,每个元素是一行。
    for one in a:
        print(one) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值