• 文件操作


    对文件操作流程

    1. 打开文件,得到文件句柄并赋值给一个变量
    2. 通过句柄对文件进行操作
    3. 关闭文件 
    f=open("路径/文件",'r',encoding="utf-8") .read() 文件句柄.
    从头开始读。读完后状态会停留在最后一行
    read(5) 读5个字符

    打开文件的模式有:

    "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)

    • rU
    • r+U

    "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

    • rb
    • wb
    • ab
     
    r:只读模式
    r+:读写模式(新写的东西只能追加到最后一行)
    w+:写读模式 创建一个新的文件再写入。再读取。(新写的东西只能追加到最后一行)
    a+:追加读写。(新写的东西只能追加到最后一行)
    rb:二进制格式读(网络传输情况下会用这种模式)
    wb:二进制格式写(网络传输情况下会用这种模式)
    w:只写模式,会覆盖之前所有内容
    a:追加内容,不会盖之前所有内容
    rU:在读取时,可以将 自动转换成 (与r或r+模式同使用)主要用于不同平台系统时自动适配。
    f.write("增加的内容 ")
    f.close() 关闭打开文件
    f.readlines() 一行一行的读,模式为r。只适合读小文件。
    for i in range(500):       读前500行
          print(f.readline())
     
    for index,line in enumerate(f.readline()):    不打印第10行
          if index==9
               print(“--我是分割线------”)
               continue
         print(line.strip()) 打印并去掉空格
     
    count=0
    for line in f:
        if count==9
             print("--------")
             count+=1
             continue
        print(line.strip())
        count+=1
     
    f.tell() 打印当前指针或光标的位置,按字符计数
    f.seek() 指针或光标回到莫个位置,0是从头开始
    f.encoding() 打印文件编码
    f.fileno() 打印系统本身读文件的接口,是调系统读,不是python本身读
    f.seekable() 判断文件光标或指针是否可以移动,结果true,false
    f.xxxable()  判断文件xx(读,写)是否可以移动,结果true,false。xx代表读写或其他操作
    f.flush() 强制刷新,将内存中的数据同步到硬盘
    f.truncate() 不写参数,则会清空数据。如果参数是10.则截取10个字符(从头取)
     
    打印进度条效果
    import sys,time
    for i in range(20)
    sys.stdout.write("#")
      sys.stdout.flush()
      time.sleep(0.1)
     
    文件修改:
    思路:打开两个文件,使用循环读旧文件,然后使用判断旧文件需要修改的字符。再写入到新文件。
    #!/usr/bin/env python
    f=open('wenjian.txt','r',encoding='utf-8')
    fnew=open('wenjian2.txt','w',encoding='utf-8')
     
    for line in f:
        if '我是第9行' in line:
            line=line.replace('我是第9行','替换测试')
        fnew.write(line)
    f.close()
    fnew.close()
     
    with语句:为了避免打开文件后忘记关闭,用with语句操作后悔自动关闭释放资源。
     
    with open("wenjian.txt",'r',encoding='utf-8') as f,
           open("wenjian.txt",'r',encoding='utf-8') as f:      同时打开两个文件格式。分两行,官方建议一行不要超过80字符。
     
    f=open("wenjian.txt",'r',encoding='utf-8')
    两句效果一样,只是上面的操作后会自动关闭。
     
     
    #!/usr/bin/env python
    import sys
    find_str = sys.argv[1]
    replace_str = sys.argv[2]
    
    with open('wenjian.txt','r',encoding='utf-8') as f,
         open('wenjian2.txt','w',encoding='utf-8') as fnew:   as存放打开文件的变量名,自定义
    
        for line in f:
           if find_str in line:
                 line=line.replace(find_str,replace_str)
           fnew.write(line)
     
     
  • 相关阅读:
    洛谷 P1024 一元三次方程求解
    洛谷 P1025 数的划分
    假期一测
    洛谷 P1032 字符变换
    洛谷 P1033 自由落体
    洛谷 P1063 能量项链
    洛谷 P1072 Hankson 的趣味题
    洛谷 P1040 加分二叉树
    1013: [JSOI2008]球形空间产生器sphere
    1013: [JSOI2008]球形空间产生器sphere
  • 原文地址:https://www.cnblogs.com/xuepython/p/6625983.html
Copyright © 2020-2023  润新知