• 文件处理


    '''
    什么是文件?
    文件就是操作系统提供给用户/应用程序的一种单位,
    该虚拟单位直接映射的是硬盘空间

    为何要处理文件?
    用户/应用程序直接操作文件(读/写)经过操作系统被转换成具体的硬盘操作
    从而实现将内存中的数据永久保存到硬盘中

    如何使用文件

    文件处理的三个步骤
    f = open(r'c.txt',mode='r',encoding = 'utf-8')
    # r'c.txt' raw_str'c.txt'
    # 文件对象(应用程序的内存资源)---->>操作系统打开的文件(操作系统内资源)
    print(f)
    data = f.read()
    f.close()
    #向操作系统发送信号,让操作系统关闭打开的文件,从而回收操作系统的资源
    #上下文管理就是管理回收操作系统的资源
    with open(r'c.txt',mode='r',encoding='utf-8') as f:
    #读写文件的操作,会自动关闭打开的文件,回收操作资源

    r模式:只读模式,在文件不存在时直接报错,文件存在文件指针就会跳到文件开头
    with open(r'c.txt',mode='rt',encoding='utf-8') as f:
    print(f.read())
    #你好啊
    hello
    我擦类
    print(f.readable())
    #True
    print(f.writable())
    #False
    f.write('hello')
    #Eorror io.UnsupportedOperation: not writable 不能写

    data=f.read()
    print(data,type(data)) #读文件是'str'类型
    #你好啊
    hello
    我擦类 <class 'str'>

    #Bytes类型转换成utf-8
    with open(r'c.txt',mode='rb') as f:
    data=f.read()
    print(data,type(data)) #Bytes
    res=data.decode('utf-8')
    print(res)
    '''

    #with open(r'/Users/ooc/Desktop/Python 学习笔记/day07/c.txt',mode='rt',encoding='utf-8') as f:
    # 打开c.txt 相对路径,mode是r读t文本文件,必须要用字符编码
    # 绝对路径/Users/ooc/Desktop/Python 学习笔记/day07/c.txt

    # line=f.readline() #读一行到换行符
    # print(line,end='')#end=''更改print自带换行符
    '''
    line1=f.readline()
    print(line1,end='')
    line2 = f.readline()
    print(line2,end='') #文件未关闭 所以上一条print打印了第一行
    光标在第一行换行符 第二条print line2
    的时候从光标所在的地方开始打印一条
    所以打印了文本中的第二条




    # lines=f.readlines() # 每一行变成一个元素,形成一个列表
    # print(lines)
    #['asd ', 'sadfas ', 'safas ', '啊 ', '啦 ', '嘛 ']



    # 循环读文件内容的方法:
    with open(r'/Users/ooc/Desktop/Python 学习笔记/day07/c.txt',mode='rt',encoding='utf-8') as f:
    for line in f:
    print(line,end='')

    #打印一行 没有关闭文件 接着打印下一行
    '''
    #不同系统有所差别
    '''
    f = open(r'c.txt', mode='r', encoding='utf-8')
    # mac系统默认utf-8,windows用gbk
    print(f)
    data = f.read()
    print(data)
    f.close()

    f = open(r'c.txt', mode='w', encoding='utf-8')
    f.write('asd')
    print(f)


    '''

  • 相关阅读:
    Teacher Bo HDU 5762(暴力)
    The Unique MST POJ1679(次小生成树)
    Sqrt Bo hdu 5752
    Borg Maze POJ 3026(BFS+最小生成树)
    Highways POJ 1751(最小生成树)
    hdu---2050---折线分割平面
    POj---1469---Courses
    poj---2349---Arctic Network
    poj-2528-Mayor's posters
    POJ---3468---A Simple Problem with Integers
  • 原文地址:https://www.cnblogs.com/OutOfControl/p/9681284.html
Copyright © 2020-2023  润新知