zoukankan      html  css  js  c++  java
  • with opne()

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    1、r读模式
    # rb模式操作的文件是非文字类的文件:图片,视频,音频等等。
    # read() read(n) readline() readlines() for循环
    
    f1 = open('./zwc.txt', encoding='utf-8', mode='r')
    content = f1.read()
    print(content)
    f1.close()
    
    # r模式下五种读取方式:
    read() 全部读取出来
    read(n) 读n个字符
    
    在r  模式下按照字符读取
    在rb 模式下按照字节读取
    
    readline() 按行读取
    readlines() 返回一个列表,列表中的每个元素是原文件的每行的数据。
    
    for循环
    f1 = open('./zwc.txt', encoding='utf-8', mode='r')
    for line in f1:
        print(line.strip())
    f1.close()
    
    
    2、r+读写模式
    # 先读后写(后追加)
    # 在r+读写模式下,应该先读后写入。
    f1 = open('./zwc.txt', encoding='utf-8', mode='r+')
    content = f1.read()
    print(content)
    f1.write('zhouwanchun')
    f1.close()
    
    如果我就要先写后读呢?
    光标,指针
    f1 = open('./zwc.txt', encoding='utf-8', mode='r+')
    f1.seek(0,2)  # 把光标调整到最后
    f1.write('zhouwanchun')
    f1.seek(0)  # 把光标调整到最开始
    content = f1.read()
    print(content)
    f1.close()
    
    
    3、写模式:w、wb、w+、w+b
    # 没有文件创建文件写入,有文件清空原文件内容写入新内容。
    # w模式必须是以字符串的内容写入。
    f1 = open('./zwc.txt', encoding='utf-8', mode='w')
    f1.write('mysql3306')
    f1.close()
    
    w+ :写读模式
    f1 = open('./zwc.txt', encoding='utf-8', mode='w+')
    f1.write('mysql3307')
    f1.seek(0)
    print(f1.read())
    f1.close()
    
    
    4、a追加模式
    # 追加模式:a ab a+ a+b
    # 没有文件创建文件追加内容,有文件在原文件的末尾追加新内容。
    f1 = open('./zwc.txt', encoding='utf-8', mode='a')
    f1.write('mysql3306')
    f1.close()
    
    
    5、其他操作方法
    f1.fileno()
    f1.flush() # 强制保存 相当于ctrl + s
    f1.readable() f1.writeable() # 判断一个文件句柄是否可读,可写。
    f1.tell() # 获取光标位置
    f1.seek(3) # 调整光标位置
    f1.truncate(3) # 只能在可写的模式下 截取原文件。只能从头截取,不能调整光标截取一部分。不能在w模式下使用truncate。
    
    
    6、另一种打开文件的操作方式
    # 自动关闭文件句柄
    # 同一语句可操作创建多个文件句柄
    with open('./file1', encoding='utf-8', mode='r') as f1, 
            open('./file2', encoding='utf-8', mode='w') as f2:
        print(f1.read())
        f2.write('666')
    
    
    7、文件的改:
    # 方法一:
    # 1.以读的模式打开原文件,产生文件句柄f1
    # 2.以写的模式打开新文件,产生文件句柄f2
    # 3.读取原文件 将原文件的内容改写成新内容写入新文件。
    import os
    with open('./1.log', encoding='utf-8', mode='r') as f1,
        open('./1.log.bak', encoding='utf-8', mode='w') as f2:
        old_content = f1.read()
        new_content = old_content.replace('mysql3306', 'mysql3307')
        f2.write(new_content)
    # 4.删除原文件。
    os.remove('./1.log')
    # 5.将新文件重命名成原文件。
    os.rename('./1.log.bak', './1.log')
    
    
    # 升级版
    import os
    with open('./1.log', encoding='utf-8', mode='r') as f1,
        open('./1.log.bak', encoding='utf-8', mode='w') as f2:
        for line in f1:
            new_line = line.replace('mysql3306', 'mysql3307')
            f2.write(new_line)
    os.remove('./1.log')
    os.rename('./1.log.bak', './1.log')
  • 相关阅读:
    Ansi,UTF8,Unicode,ASCII编码的区别
    Delphi 快捷键
    Sql Server2008恢复备份数据库问题
    js图片无缝滚动代码
    SQL Server 2008 清空删除日志文件 130G日志 10秒内变10M .
    JavaScript_循环26个英文字母的方法 .
    iframe跨子域
    sql数据库该名字
    大型网站架构的优化与架构演变(整理) .转自网络
    删除SQL日志语句,经测试8G日志文件都可以删除
  • 原文地址:https://www.cnblogs.com/zhouwanchun/p/14427640.html
Copyright © 2011-2022 走看看