Python-文件IO及编码

几种编码标准

ASCII 美国信息交换标准代码
GB2312 国标码
GBK 国标扩展码
Unicode 统一码 16位
UTF-8 可变长度字符编码

f = open()函数

用于打开文件,创建一个 file 对象,参数及顺序如下:

  • file
    包含文件名称的一个字符串,内容即为文件路径,分为两种方式:
    相对路径:从当前文件目录开始
    绝对路径:从磁盘开始

  • mode='r'
    打开文件的模式:
    r:默认模式,以只读方式打开文件,文件指针在文件开头。若文件不存在,抛出异常
    w:以只写方式打开文件,若文件存在会被覆盖,若文件不存在会自动创建
    a:以追加方式打开文件,若文件已存在,则指针在文件尾,若文件不存在则自动创建
    r+:以读写方式打开文件,指针在文件开头,若文件不存在,抛出异常
    w+:以读写方式打开文件,若文件存在会被覆盖,若不存在,自动创建
    a+:以读写方式打开文件,若文件存在,指针在文件末尾,若不存在,自动创建
    b:默认均以文本方式打开文件,若在上述字母后加“b”意为以二进制方式打开

  • buffering=-1
    如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

  • encoding=None
    指明对文件编码方式

  • errors=None
    指明编码和解码错误时怎么样处理。不能在二进制的模式下使用。
    1)当指明为’strict’时,编码出错则抛出异常ValueError。
    2)当指明为’ignore’时,忽略错误。
    3)当指明为’replace’时,使用某字符进行替代模式,比如使用’?’来替换出错的。
    4)其它相应还有surrogateescape/xmlcharrefreplacs/backslashreplace。

  • newline=None
    控制文本模式之下,一行的结束字符。可以是None,’’,\n,\r,\r\n等。

  • closefd=True
    用来当给一个文件句柄传进来时,而当退出文件使用时,而不对文件句柄进行关闭。如果传递一个文件名进来,这个参数无效,必定为True方式。用来当给一个文件句柄传进来时,而当退出文件使用时,而不对文件句柄进行关闭。如果传递一个文件名进来,这个参数无效,必定为True方式。

  • opener=None
    用来实现自己定义打开文件方式,较为复杂

File对象

一个文件被打开后,有一个file对象,可以得到有关该文件的各种信息。

File对象属性

f.closed 如果文件已被关闭返回true,否则返回false。
f.mode 返回被打开文件的访问模式。
f.name 返回文件的名称。
f.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。

File对象函数

  • f.close()
    关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误。 close() 方法允许调用多次。
    当 file 对象,被引用到操作另外一个文件时,Python 会自动关闭之前的 file 对象。

  • f.write(str)
    向文件中写入指定字符串。

  • file.writelines(sequence)
    向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

  • f.read(size)
    从文件读取指定的字节数,如果未给定或为负则读取所有。

  • f.readline(size)
    从文件读取整行,包括 "\n" 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符。

  • f.readlines()
    读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。
    如果碰到结束符 EOF 则返回空字符串。

  • f.tell()
    返回文件的当前位置,即文件指针当前位置。

  • file.next()
    返回文件下一行。

  • f.seek(offset, whence=0)
    用于移动文件读取指针到指定位置
    offset -- 开始的偏移量,也就是代表需要移动偏移的字节数
    whence -- 默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352

推荐阅读更多精彩内容