python打卡task12

    科技2022-09-01  115

    文件与文件系统

    如何打开一个文件

    open(file, mode=‘r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True) Open file and return a stream. Raise OSError upon failure. file: 必需,文件路径(相对或者绝对路径) mode: 可选,文件打开模式 buffering: 设置缓冲 encoding: 一般使用utf8 errors: 报错级别 newline: 区分换行符 对于打开方式,特总结以下图片

    f = open('将进酒.txt') print(f) # <_io.TextIOWrapper name='将进酒.txt' mode='r' encoding='cp936'> for each in f: print(each) # 君不见,黄河之水天上来,奔流到海不复回。 # 君不见,高堂明镜悲白发,朝如青丝暮成雪。 # 人生得意须尽欢,莫使金樽空对月。 # 天生我材必有用,千金散尽还复来。 # 烹羊宰牛且为乐,会须一饮三百杯。 # 岑夫子,丹丘生,将进酒,杯莫停。 # 与君歌一曲,请君为我倾耳听。 # 钟鼓馔玉不足贵,但愿长醉不复醒。 # 古来圣贤皆寂寞,惟有饮者留其名。 # 陈王昔时宴平乐,斗酒十千恣欢谑。 # 主人何为言少钱,径须沽取对君酌。 # 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。

    文件对象方法

    fileObject.close() 用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发ValueError错误。

    f = open("将进酒.txt") print('FileName:', f.name) # FileName: 将进酒.txt f.close()

    fileObject.read([size]) 用于从文件读取指定的字符数,如果未给定或为负则读取所有。

    f = open('将进酒.txt', 'r') line = f.read(20) print("读取的字符串: %s" % line) # 读取的字符串: 君不见,黄河之水天上来,奔流到海不复回。 f.close()

    fileObject.readline()读取整行,包括 “\n” 字符。

    f = open('将进酒.txt', 'r') line = f.readline() print("读取的字符串: %s" % line) # 读取的字符串: 君不见,黄河之水天上来,奔流到海不复回。 f.close()

    fileObject.readlines()用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for… in … 结构进行处理。

    f = open('将进酒.txt', 'r') lines = f.readlines() print(lines) for each in lines: each.strip() print(each) # 君不见,黄河之水天上来,奔流到海不复回。 # 君不见,高堂明镜悲白发,朝如青丝暮成雪。 # 人生得意须尽欢,莫使金樽空对月。 # 天生我材必有用,千金散尽还复来。 # 烹羊宰牛且为乐,会须一饮三百杯。 # 岑夫子,丹丘生,将进酒,杯莫停。 # 与君歌一曲,请君为我倾耳听。 # 钟鼓馔玉不足贵,但愿长醉不复醒。 # 古来圣贤皆寂寞,惟有饮者留其名。 # 陈王昔时宴平乐,斗酒十千恣欢谑。 # 主人何为言少钱,径须沽取对君酌。 # 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。 f.close()

    fileObject.tell()返回文件的当前位置,即文件指针当前位置 fileObject.seek(offset[, whence])用于移动文件读取指针到指定位置。 offset:开始的偏移量,也就是代表需要移动偏移的字节数,如果是负数表示从倒数第几位开始。 whence:可选,默认值为 0。给 offset 定义一个参数,表示要从哪个位置开始偏移;0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起。 fileObject.write(str)用于向文件中写入指定字符串,返回的是写入的字符长度。 在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。

    如果文件打开模式带b,那写入文件内容时,str(参数)要用encode方法转为bytes形式,否则报错:TypeError: a bytes-like object is required, not ‘str’。

    文件系统

    os模块

    在python中对于文件系统的访问一般使用的是os模块。python是跨平台的,因此在使用os模块时,不需要关心是在什么系统下使用的 有下面集中函数,分别处理不同的部分 比如 access() 函数: os.access() 方法使用当前的uid/gid尝试访问路径。

    import os FilePath = os.access("F:\\python\\test_file.txt",os.F_OK) #必须带有文件的后缀名 print("文件夹下是否存在指定文件:",FilePath) #上面代码的输出结果为:文件夹下是否存在指定文件: True
    Processed: 0.009, SQL: 9