zoukankan      html  css  js  c++  java
  • Python内置函数之--open

              open

    1、open函数,该函数用于处理文件

    2、open("文件名,模式(用什么方式打开),编码")

        a、基本的打开方式

            

    #  1、只读,r
    f = open("ha.log","r")
    
    #2、只写,w,[文件不可读;文件不存在则创建;存在则清空内容]
    f = open("ha.log","w")
    f.write("123")
    f.close()
    
    #3、x, 只写模式【不可读;不存在则创建,存在则报错】
    f = open("ha1.log","x")
    f.write("456")
    f.close()
    
    #4、追加模式【不可读;不存在则创建;存在则只追加内容;】
    f = open("ha1.log","a")
    f.write("666")
    f.close()

        b、字节的方式打开

    #1、只读,rb
    f = open("ha.log","rb")
    data = f.read()
    f.close()
    print(type(data))
    
    #2、只写
    f = open("ha.log","wb")
    f.write(bytes("中国",encoding="utf-8"))
    f.close()

          c、区别:

    #普通打开
    #普通打开已经经过内部python操作,直接是UTF-8,rb方式则需要自己转换
    #===python内部将101010 => 转换成字符串,通过字符串操作
    #010101 =>  python解释器  => 程序员
    
    #二进制打开方式
    #rb方式打开只会得到2进制的代码,需要自己转换成utf-8

          d、"+" 表示可以同时读写某个文件

    # r+, 读写【可读,可写】
    # w+, 写读【可读,可写】
    # x+ ,写读【可读,可写】
    # a+, 写读【可读,可写】

             1、r+

    # r,末尾追加,指针移动到最后
    f = open("ha.log","r+",encoding="utf-8")
    #指针为0,起始位置
    #f.close()
    #从开始向后读
    #写,追加,指针调到最后
     

          2、w+,x+

    #w+,先清空文件内容,再写之后,就可以读取
    #先清空,之后写的才能读,写,指针到最后
    f = open("ha.log","w+",encoding="utf-8")
    f.write("吴文")
    f.seek(0)#指针指向0
    data = f.read()
    f.close()
    print(data)
    #x+基本同上,如果文件存在,则报错

        3、a+

     a+
    a,打开的同时,指针已经到最后了,文件里面的内容读不到
    #写时,也会追加,指针放到最后
    f = open("ha.log","a+",encoding="utf-8")
    data = f.read()
    f.close()
    print(data)

    3、  文件的操作功能

    #===============================
    # f.tell()#获取指针的位置
    # f.seek(num)#调整指针的位置
    #===============================
    # close         关闭文件
    # flush         强制刷新文件内部缓冲区
    # read          读取文件
    # readline      读取一行
    # seek          文件中指针位置
    # tell          获取指针的位置
    # truncate      截断数据,仅保留指针指定之前数据
    # write         读取文件

    4、读取每一行的内容

    f = open("ha.log","r",encoding="utf-8")
    
    for line in f:
         print(line)  =>#f.readline,可以读取所有行的内容

    5、with open

    #当with代码块执行完毕时,内部会自动关闭并释放文件资源。
    with open("ha.log","r") as f:
        f.read()
    #python内部会帮你关闭不用写f.close

     

    #同时打开2个文件
    with open("log1","r") as boj1, open("log2","r") as obj2:
         pass
    
    #打开2个文件并进行传送数据
     with open("源文件","r") as obj1,open("新文件","w") as obj2:
         for line in obj1:
             obj2.write(line)
     #打开一个源文件,同时吧内容写入一个新文件里面

    6、lambda表达式

    #lambda可以代替简单的函数
    def f1():
        return 123
    
     f2 = lambda :123
    
     def f3(a1,a2):
         return a1 + a2
    
     f4 = lambda a1,a2: a1+a2
    
     r1 = f1()
     print(r1)
    
     r2 = f2()
     print(r2)

        

  • 相关阅读:
    LeetCode153 Find Minimum in Rotated Sorted Array. LeetCode162 Find Peak Element
    LeetCode208 Implement Trie (Prefix Tree). LeetCode211 Add and Search Word
    LeetCode172 Factorial Trailing Zeroes. LeetCode258 Add Digits. LeetCode268 Missing Number
    LeetCode191 Number of 1 Bits. LeetCode231 Power of Two. LeetCode342 Power of Four
    LeetCode225 Implement Stack using Queues
    LeetCode150 Evaluate Reverse Polish Notation
    LeetCode125 Valid Palindrome
    LeetCode128 Longest Consecutive Sequence
    LeetCode124 Binary Tree Maximum Path Sum
    LeetCode123 Best Time to Buy and Sell Stock III
  • 原文地址:https://www.cnblogs.com/Acekr/p/7351972.html
Copyright © 2011-2022 走看看