zoukankan      html  css  js  c++  java
  • 初识python 文件读取 保存

    上一章最后一题的答案:
    infors.sort(key=lambda x:x['age'])
    print(infors)
    --->[{'name': 'laowang', 'age': 23}, {'name': 'ab', 'age': 34}, {'name': 'bf', 'age': 43}]

    python基础(三):

    文件打开和关闭:

    打开:

    可以用open函数打开一个已经存在的文件或者创建一个新的文件,

     open('文件名','访问模式)

    f = open('test.txt','w')

    访问模式说明
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

    关闭:

    close()

        # 新建一个文件,文件名为:test.txt
        f = open('test.txt', 'w')
    
        # 关闭这个文件
        f.close()

    文件读写:

    读(read):

    我有一个 1.text 的文档,文档里面的内容是

    '''Python just let be 

    I fell in love with you watching Casablanca '''

    接下来我要对这个文档进行操作

    使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

    
    
    f = open('1.txt','r')

    Text = f.read(7) #长度为7
    print(Text)
    f.close()
    --->Python

    如果使用读了多次,那么后面读取的数据是从上次读完后的位置开始的f = open('1.txt','r')

    
    Text = f.read(7)
    print(Text)
    postion = f.tell() #tell()可以查看当前阅读到的位置
    print(postion)
    
    Text_2 = f.read(4)
    postion_2 = f.tell()
    print(Text_2)
    print(postion_2)
    
    f.close()

    --->

      Python
      7
      just
      11

    
    

    读(readlines)

    readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素

    Text = f.readlines()
    for i in Text:
        print(i)
    f.close()
    --->

    Python just let be

    I fell in love with you watching Casablanca

    
    

    写(write)

    使用write()可以完成向文件写入数据 

    f = open('test.txt', 'w')
    f.write('hello world, i am here!')
    f.close()

    文件定位:

    获取当前读写的位置:

    在读写文件的过程中,如果想知道当前的位置,可以使用tell()来获取

    Text = f.read(7)
    print(Text)
    postion = f.tell() #tell()可以查看当前阅读到的位置
    print(postion)
    
    Text_2 = f.read(4)
    postion_2 = f.tell()
    print(Text_2)
    print(postion_2)
    
    f.close()
    
    --->
      Python 
      7
      just
      11

    定位到某个位置:

    如果在读写文件的过程中,需要从另外一个位置进行操作的话,可以使用seek()

    seek(offset, from)有2个参数

    • offset:偏移量
    • from:方向
      • 0:表示文件开头
      • 1:表示当前位置
      • 2:表示文件末尾
     1 f = open('1.txt','rb')
     2 
     3 str = f.read(6)
     4 postion = f.tell()
     5 print(str)
     6 print(postion)
     7 
     8 f.seek(-10,2) #from =2
     9 str_2 = f.read()
    10 print(str_2)
    11 f.close()

    --->

    b'Python'
    6
    b'Casablanca'

    文件和文件夹的相关操作:

    重命名:

    os模块中的rename()可以完成对文件的重命名操作

    rename(需要修改的文件名, 新的文件名)

    import os
    os.rename('1.txt','1_1.txt')

    删除:

    import os
    os.remove('1_1.txt')

    文件夹操作:

    创建文件夹:

    os.mkdir('test')

    获取当前目录:

    os.getcwd()

    改变默认目录:

    os.chdir('../')

    获取目录列表:

    os.listdir('../')

    删除文件夹:

    os.rmdir('test')

     

  • 相关阅读:
    [055] SSL 3.0曝出Poodle漏洞的解决方式-----开发人员篇
    java中接口的定义与实现
    很好的理解遗传算法的样例
    Memory Architecture-SGA-Database Buffer Cache
    ActionScript3游戏中的图像编程(连载十七)
    MacOS的g++使用clang,默认不支持C++11多线程: no matching constructor for initialization of 'std::thread'
    bash代码
    delete
    nautilus-open-terminal右键随处打开终端
    删除系统多余内核
  • 原文地址:https://www.cnblogs.com/pantom0122/p/9403946.html
Copyright © 2011-2022 走看看