文件与文件系统

  1. 今天学了文件的相关知识,今天我解决了之前的一个疑问,就是之前我们在做操作系统实验报告时,其中牵扯文件的一些知识,我当时用python写的,但当时我注意到一个小细节,每次编译文件之后,它占的内存就比我同学的要大,当时百思不得其解,上网也搜不到原因,今天发现了,是因为我当时打开文件用open,但结束后没有用closed,我不知道那叫不叫内存泄漏,但就是占用的内存大了。
  2. 文件读取的格式以及一些参数作用
open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
 'r'以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 
 'w'打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑。即原有内容会被删除。如果该文件不存在,创建新文件。
 'x'写模式,新建一个文件,如果该文件已存在则会报错。
 'a'追加模式,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
 'b'以二进制模式打开文件。一般用于非文本文件,如:图片。
 't'以文本模式打开(默认)。一般用于文本文件,如:txt。'+'可读写模式(可添加到其它模式中使用)
  1. 文件对象的方法,
    1. fileObject.close() 用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发ValueError错误。
    2. fileObject.read([size]) 用于从文件读取指定的字符数,如果未给定或为负则读取所有。
    3. fileObject.readline()读取整行,包括 “\n” 字符。
    4. fileObject.readlines()用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。
    5. fileObject.tell()返回文件的当前位置,即文件指针当前位置。
    6. - fileObject.write(str)用于向文件中写入指定字符串,返回的是写入的字符长度。
    7. fileObject.writelines(sequence)向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符\n
  2. OS 模块中关于文件/目录常用的函数
    - os.getcwd()用于返回当前工作目录。
    - os.chdir(path)用于改变当前工作目录到指定的路径。
    - listdir (path='.')返回path指定的文件夹包含的文件或文件夹的名字的列表。
    - - os.mkdir(path)创建单层目录,如果该目录已存在抛出异常。
    - os.makedirs(path)用于递归创建多层目录,如果该目录已存在抛出异常。
    - os.remove(path)用于删除指定路径的文件。如果指定的路径是一个目录,将抛出 OSError
    - os.rmdir(path)用于删除单层目录。仅当这文件夹是空的才可以, 否则, 抛出 OSError
    - os.removedirs(path)递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常。
    - os.rename(src, dst)方法用于命名文件或目录,从 srcdst,如果 dst 是一个存在的目录, 将抛出 OSError
    - os.system(command)运行系统的shell命令(将字符串转化成命令)
    - - os.curdir指代当前目录(.
    - os.pardir指代上一级目录(..
    - os.sep输出操作系统特定的路径分隔符(win下为\\,Linux下为/
    - os.linesep当前平台使用的行终止符(win下为\r\n,Linux下为\n
    - os.name指代当前使用的操作系统(包括:‘mac’,‘nt’)
    - - os.path.basename(path)去掉目录路径,单独返回文件名
    - os.path.dirname(path)去掉文件名,单独返回目录路径
    - os.path.join(path1[, path2[, ...]])path1path2 各部分组合成一个路径名
    - os.path.split(path)分割文件名与路径,返回(f_path,f_name)元组。如果完全使用目录,它会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在。
    - os.path.splitext(path)分离文件名与扩展名,返回(f_path,f_name)元组。- os.path.getsize(file)返回指定文件大小,单位是字节。
    - os.path.getatime(file)返回指定文件最近的访问时间
    - os.path.getctime(file)返回指定文件的创建时间
    - os.path.getmtime(file)返回指定文件的最新的修改时间
    - 浮点型秒数,可用time模块的gmtime()localtime()函数换算
    - - os.path.exists(path)判断指定路径(目录或文件)是否存在
    - os.path.isabs(path)判断指定路径是否为绝对路径
    - os.path.isdir(path)判断指定路径是否存在且是一个目录
    - os.path.isfile(path)判断指定路径是否存在且是一个文件
    - os.path.islink(path)判断指定路径是否存在且是一个符号链接
    - os.path.ismount(path)判断指定路径是否存在且是一个悬挂点
    - os.path.samefile(path1,path2)判断path1和path2两个路径是否指向同一个文件
  3. 最后也学了一些关于序列化与反序列化的知识。

你可能感兴趣的:(python)