zoukankan      html  css  js  c++  java
  • 文件操作

    1.文件操作流程:打开,操作,关闭:

    f=open('文件1号','r',encoding='utf8')       #打开文件对象,命名为f(r代表读模式)
    #print(f.read())                             #f.read()是读取文件全部内容
    
    print(f.read(3))                            #读取前三个字符,读完后光标移动到下一字符
    print(f.read(4))                           #读取4个字符(读取时默认每一行最后有一个换行符)
    
    #f.close()                                  #关闭文件
    
    #f=open('文件1号','w',encoding='utf8')      #w代表写模式
    #f.write('hello 
    ' )
    #f.write('萨瓦迪卡')                       #w模式下write写入时会将原来的内容格式化
    #f.close()
    
    #import time
    #f=open('文件1号','a',encoding='utf8')      #a代表append模式
    #f.write('
    马勒戈巴子')                   #给文件增加新内容
    #time.sleep(20)                            #在没有关闭文件的情况下,20s以后才会写进去

    2.文件操作具体方法:

    f=open('小重山','r',encoding='utf8')
    
    #print(f.readline())                   #读取第一行,读完后指针指向下一行
    #print(f.readline())                   #打印的是第二行。readline()自带换行符,print也自动换行,所以一共换了两行
    
    #print(f.readlines())                  #f.readlines()读取的是包含所有行的一个列表,每个元素都带换行符
    
    #for i in f.readlines():               #用for循环打印f.readlines()列表,打印时会自动识别换行符
    #    print(i)
    
    #for i in f.readlines():
    #   print(i.strip())                   #strip的功能是去掉换行符
    
    number=0
    for i in f.readlines():
        number+=1
        if number==5:
            i=''.join([i.strip(),'奈何'])     #用join进行字符串拼接,给第5行加内容
        print(i.strip())
    
    f=open('小重山','r',encoding='utf8')
    for i in f:              #f.readlines()是将f对象读取为列表放入内存;而此处for循环以"迭代器"去读取,i指向谁,谁占内存
       print(i.strip())     #当下一个要进入内存时,上一个已经不占内存了,要比f.readlines()省内存,更优
    f.close()
    
    #对某一行操作:
    f=open('小重山','r',encoding='utf8')
    number=0
    for i in f:
        number+=1
        if number==5:
            i=''.join([i.strip(),'奈何'])     #用join进行字符串拼接,给第5行加内容
        print(i.strip())
    f.close()
    
    f=open('小重山','r',encoding='utf8')
    print(f.tell())         #识别光标的位置,起始位置是0
    print(f.read(2))        #读两个字符
    print(f.tell())          #一个汉字占三个字节,光标一次走一个字节,所以指到6
    f.seek(3)                #调整光标位置,很重要
    print(f.read(4))
    f.close()

    3.flush及其他模式

    import time
    f=open('文件2号','w',encoding='utf8')
    f.write('apple ')
    f.write('hello')
    f.flush()           #flush实现写完后立即存入磁盘文件,如果没有flush,程序执行完后才会写入
    time.sleep(3)
    f.close()
    
    import time
    for i in range(30):
        print('*',end='')
        time.sleep(0.02)
    print('
    ')
    
    import time
    for i in range(30):
        print('*',end='',flush=True)  #与上一段代码相比,flush实现了动态输出功能
        time.sleep(0.1)
    
    f=open('文件2号','a',encoding='utf8')
    f.truncate(3)                 #从第三个位置以后截断,只保留前面的内容
    
    f=open('文件3号','r+',encoding='utf8')
    print(f.read())                 #读写模式,可读可写,写在最后
    f.write('你好')
    f.close()
    
    f=open('文件3号','w+',encoding='utf8')
    f.write('abcdefg')           #写读模式,写前会格式化
    f.seek(0)                    #写完后光标在最后,所以读不到内容,需要调整光标位置
    print(f.readline())
    f.close()
    
    f=open('文件3号','a+',encoding='utf8')
    f.write('water')
    f.seek(0)            #添加完后光标在最后,所以读不到内容,需要调整光标位置
    print(f.readline())
    f.close()

    4.文件修改

    f_read=open('小重山','r',encoding='utf8')
    f_write=open('小重山2','w',encoding='utf8')
    number=0
    for i in f_read:
        number+=1
        if number==5:
            i='hello 岳飞
    '                  #完全替换
        elif number==6:
            i=''.join([i.strip(),'奈何
    '])   #增加内容
        f_write.write(i)
    f_read.close()
    f_write.close()
    
    

    5.with方法

    with open('小重山''r') as f:     #等价于f=open('小重山','r'),退出with语句就关闭了文件,不需要close
        f.read()
    print('jjj')
    
    #with同时管理多个文件对象:
    with open('文件1''r') as f1,open('文件2''w') as f2:
  • 相关阅读:
    [2018福大至诚软工助教]原型设计+用户规格说明书小结
    高等数理逻辑大作业
    [2018福大至诚软工助教]测试与优化小结
    [2018福大至诚软工助教]结对项目小结
    BETA 版冲刺前准备
    Alpha冲刺之事后诸葛亮
    Alpha 冲刺 (10/10)
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
  • 原文地址:https://www.cnblogs.com/Finance-IT-gao/p/10324815.html
Copyright © 2011-2022 走看看