• Python 文件操作(一)


    一、注意事项

    A.能调用方法的一定是对象

    B.文件的操作流程:

      1. 打开文件,得到文件句柄并赋值给一个变量

      2. 通过句柄对文件进行操作

      3. 关闭文件

    二、操作实现方法

    '''
    文件名:小双双
    文件内容如下:

    昨夜寒蝉不住鸣。
    惊回千里梦,已三更。
    起来独自绕阶行。
    人悄悄,帘外月胧明。
    白首为功名,旧山松饰老,阻归程。
    欲将心事付瑶琴。
    知音少,弦断有谁听。
    '''

    1.

    1 f = open('小双双', 'r')
    2 print(f.readline().strip())  # 读取文件第一行内容
    3 
    4 # 执行第二次的时候读取第二行内容,因为第一次读取完成后自动把光标放到了第一行末尾
    5 print(f.readline().strip()) 

    >>> 昨夜寒蝉不住鸣。

           惊回千里梦,已三更。

    2.

    1 f = open('小双双', 'r')
    2 print(f.readlines()) #读取所有内容,按行放到列表中
    3 f.close()

    >>> ['昨夜寒蝉不住鸣。 ', '惊回千里梦,已三更。 ', '起来独自绕阶行。 ', '人悄悄,帘外月胧明。 ', 

           '白首为功名,旧山松饰老,阻归程。 ','欲将心事付瑶琴。 ', '知音少,弦断有谁听。']

    3.

    1 # 逐行打印文件内容
    2 f = open('小双双', 'r')
    3 
    4 for n in f.readlines(): 
    5     print(n.strip())
    6 f.close()
    >>>昨夜寒蝉不住鸣。
       惊回千里梦,已三更。
       起来独自绕阶行。
       人悄悄,帘外月胧明。
       白首为功名,旧山松饰老,阻归程。
       欲将心事付瑶琴。
       知音少,弦断有谁听。

    4.
     1 # 在第3行后添加一行字符串
     2 f = open('小双双', 'r')
     3 data = f.readlines()
     4 f.close()
     5 number = 0
     6 
     7 for n in data: # 逐行打印文件内容
     8     if number == 3:
     9         n = ''.join((n.strip(),'
    小可爱')) #字符串拼接用.join(),且其只能接收一个参数
    10     print(n.strip())
    11     number += 1
    >>>昨夜寒蝉不住鸣。
       惊回千里梦,已三更。
       起来独自绕阶行。
       人悄悄,帘外月胧明。
       小可爱
       白首为功名,旧山松饰老,阻归程。
       欲将心事付瑶琴。
       知音少,弦断有谁听。
    5.
    1 f = open('小双双', 'r')
    2 
    3 print(f.tell())  #显示光标此时的位置
    4 for n in f:  #for内部将f对象做成一个迭代器,用一个取一个
    5     print(n.strip())
    6 print(f.tell())
    >>>0
       昨夜寒蝉不住鸣。
       惊回千里梦,已三更。
       起来独自绕阶行。
       人悄悄,帘外月胧明。
       白首为功名,旧山松饰老,阻归程。
       欲将心事付瑶琴。
       知音少,弦断有谁听。
       147

    6.
    1 f = open('小双双', 'r')
    2 # gbk编码一个中文占两位
    3 print(f.tell())   #显示光标此时的位置
    4 print(f.read(4))
    5 print(f.tell())
    >>>0
       昨夜寒蝉
       8

    7.
    1 f = open('小双双', 'r')
    2 # gbk编码一个中文占两位   
    3 print(f.read(4))
    4 print(f.tell())#显示光标此时的位置
    5 
    6 f.seek(4)   # 调节光标的位置
    7 print(f.read(4))
    >>>昨夜寒蝉
       8
       寒蝉不住

    8.
    1 f = open('小双双', 'a')
    2 print(f.isatty()) # 判断是否与终端设备相关联,是返回True
    1 f = open('小双双', 'a')
    2 
    3 #数据截断,在‘a’模式下截取原有数据的前6位,在‘w’模式下格式化文件
    4 f.truncate(6) 

    9.'a+'  'w+'  'r+'  模式

    f = open('小双双', 'w+')  #w+模式,执行该语句原文件格式化
    
    print(f.readline())  #所以执行该语句输出为空
    
    f.write('小可爱')    #重新写入字符
    print(f.readline())   #再次读取还为空,因为上句操作完成后光标移到了最后
    
    f.seek(0)  # 调整光标位置
    print(f.readline())
    
    f.close()

     >>>

       小可爱
     1 f = open('小双双', 'r+')  #r+模式
     2 
     3 print(f.readline())  # 输出原文件内容,
     4 
     5 f.write('小可爱')    #在原文件内容的后面接着写入字符
     6 print(f.readline())  #读取为空,因为上句写操作完成后光标移到了最后
     7 
     8 f.seek(0)  # 调整光标位置到0
     9 print(f.readline())
    10 
    11 f.close()
    >>>小可爱
    
       小可爱小可爱
     1 f = open('小双双', 'a+')  #a+模式,追加内容;语句执行完光标到最后位置,
     2 
     3 print(f.readline())  # 输出为空,
     4 
     5 f.write('小可爱')    #在原文件内容的后面追加内容
     6 print(f.readline())  #读取为空,因为上句写操作完成后光标移到了最后
     7 
     8 f.seek(0)  # 调整光标位置到0
     9 print(f.readline())  #输出现有内容
    10 
    11 f.close()

     >>>

       小可爱小可爱小可爱

    三、文件的安全打开方式:
    1 with open('小双双', 'r') as f:  # with方式打开文件,后面不需要关闭文件。推荐文件操作使用with
    2 
    3 # with同时管理多个文件对象
    4 with open('小双双', 'r') as f_read, open('小双双', 'w') as f_write:
    5     for line in f_read:
    6         f_write.write(line)
     
  • 相关阅读:
    小程序云函数 Error: errCode: -404011 cloud function execution error
    Fiddler+雷电模拟器进行APP抓包
    Vue优化常用技巧
    sftp常用命令整理
    React生命周期学习整理
    git 提交跳过检查
    漂亮的代码系列
    关于我系列
    架构系列
    深度学习系列
  • 原文地址:https://www.cnblogs.com/ss-long/p/10300383.html
Copyright © 2020-2023  润新知