python五 文件操作

#文件的操作流程为 打开-->操作--->关闭 
#file = open(filename, mode, encoding) 

# filename:file_name变量是一个包含了你要访问的文件路径的字符串值。

# mode:access_mode决定了打开文件的模式:只读,写入,追加等。
#             这个参数是非强制的,默认文件访问模式为只读(r)。

# encoding: 以什么编码方式来打开文件,文件使用什么编码存储就要用什么样的编码打开
#           否则就会产生乱码

注意事项:
        文件操作后一定要关闭!否则打开的文件资源会一直占用内存资源


# 打开方式1, 这种方式在使用结束后,会自动关闭文件
path = "d:\hello.txt"
with open(path, "w") as f:
    pass

# 打开方式2,使用后,要手动关闭
# 以只读方式打开文件时,如果文件不存在会报错,这时应该进行错误处理
f = open(path, "w")

# 文件的打开模式
# w:这是写模式,如果存在同名文件那么该文件会被覆盖,不存在时会直接创建该文件
#        只能创建文件不能创建不存在的父级目录
#       这是以字符操作的方式打开一个文件那么在写入内容时也按字符写入
# r: 只读模式,最开始时光标在文件开始的地方
# a: append追加,在文件尾追加内容,不能读内容
# r+:读写打开,先读文件再写
# w+:写读打开,先创建文件再写,然后才能读,是在末尾写入的----这种模式不常用
#   文件只能在最后进行写入,如果是在文件中间进行插入那么新内容会覆盖旧内容
#  a+:追加读,默认追加不能读
# 还有针对二进制的打开方式
# rb/wb/rb+/wb+/ab/ab+:用法同字符操作时一样




# 文件方法可以分为四类: 读取, 写入, 文件游标操作, 以及其他辅助功能.

# 文件的读取操作
# 以只读方式打开
f = open(r"d:/myfile/test.txt", "r")


# read(size = -1) 默认值是-1读取文件的全部内容,如果传入参数,那么会读取指定个数的字符,是字符不是字节
f.read(5)
f.close()


# readline(size = -1) 默认值是-1,读取文件的一行,否则返回一行的指定字符个数
f = open(r"d:/myfile/test.txt", "r")
f.readline()
f.close()


# readlines(size = -1) 以列表的形式返回文件中的所有行
f = open(r"d:/myfile/test.txt", "r")
f.readlines()
f.close()


# 文件的写入操作

# 以追加的方式打开文件,大文件的末尾追加内容
f = open(r"d:/myfile/test.txt", "a")
f.write("hello this new end!")
f.close()


# 以写的方式打开文件,如果原文件存在那么会被覆盖
f = open(r"d:/myfile/test.txt", "w")
f.write("hello this new end!")
f.close()


# 文件游标操作
f = open(r"d:/myfile/test.txt", "r+")
# 跳转到指定的字节处,然后再进行操作,如果含有中文字符,容易出错
f.seek(5) 
f.readline()
# f.close()

# 保留指定字节数的内容,其他内容舍去
f.truncate(25)
f.close()


# 文件对象的方法 操作
# file.close() 关闭文件
# file.fileno() 返回文件的描述符(file descriptor ,FD, 整数值)
# file.flush() 将缓存的内容写入磁盘上
# file.isatty() 判断 file 是否是一个类 tty 设备
# file.nexta() 返回文件的下一行(类似于 file.readline() ), 或在没有其它行时
#              引发 StopIteration 异常
# file.read(size=-1) 从文件读取 size 个字节, 当未给定 size 或给定负值的时候, 
#                    读取剩余的所有字节, 然后作为字符串返回.如果字符模式打开,则read按字符读取,
#                    否则按字节读取
# file.readline(size=-1) 从文件中读取并返回一行(包括行结束符), 或返回最大 size
# file=open('test','ab')
# file.write(bytes('hehe',encoding='utf-8')) 向文件写入字符串,会覆盖原有数据
# file.close() 关闭文件
# file.tell获取当前指针的位置
# file.read()如果按字符模式打开,则read按字符读取,否则按字节读取
# file.fileno文件描述符
# file.truncat 截断数据,清除文件指针之后的数据
# file.seek(off, whence=0) 在文件中移动文件指针, 
#         从 whence = 0 代表文件其始, 1代表当前位置, 2 代表文件末尾,偏移 off 字节,不论是否有中文,都以字节为单位
# file.truncate(size=file.tell()) 截取文件到最大 size 字节, 默认为当前文件位置
# file.writelines(seq) 向文件写入字符串序列 seq(seq 应该是一个返回字符串的可迭代对象)
# file.readlines(sizhint=0) 读取文件的所有行并作为一个列表返回(包含所有的行结束符);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章