植物百科网
当前位置: 首页 农业百科

文件的九个基本存取权限(文件操作的一些基本内容)

时间:2023-08-16 作者: 小编 阅读量: 1 栏目名: 农业百科

文件操作的一些基本内容文件操作中最基本的当然属于文件的读写操作当我们利用爬虫抓取到一堆数据时,就需要进行文件写操作,将数据写入到文件当中;当我们需要对抓取到的文件内容进行筛选,获取有效信息时,需要对文件进行读操作本文将介绍。

文件的九个基本存取权限?文件操作中最基本的当然属于文件的读写操作当我们利用爬虫抓取到一堆数据时,就需要进行文件写操作,将数据写入到文件当中;当我们需要对抓取到的文件内容进行筛选,获取有效信息时,需要对文件进行读操作本文将介绍文件操作的一些基本内容,助您更高效的处理文件,我来为大家科普一下关于文件的九个基本存取权限?以下内容希望对你有帮助!

文件的九个基本存取权限

文件操作中最基本的当然属于文件的读写操作。当我们利用爬虫抓取到一堆数据时,就需要进行文件写操作,将数据写入到文件当中;当我们需要对抓取到的文件内容进行筛选,获取有效信息时,需要对文件进行读操作。本文将介绍文件操作的一些基本内容,助您更高效的处理文件。

打开和关闭文件

文件的打开模式多种多样,就像“条条道路通罗马”一样,每一种模式都可以用来打开文件,但是由于“道路”的不同,它们对于打开后文件内容的处理方式不一样。相比来说文件的关闭模式就简单得多了。

文件的打开模式

表格内列出了一些常见的文件打开模式以及它对于文件的作用。

模式

描述

b

以二进制模式打开文件。

以读写模式打开一个文件。

r

以只读方式打开文件,打开后文件的指针将会放在文件的开头。

rb

以二进制格式打开一个文件用于只读,文件指针将会放在文件的开头。

r

以读写模式打开一个文件,文件指针将会放在文件的开头。

rb

以二进制格式打开一个文件用于读写,文件指针将会放在文件的开头。

w

以写模式打开一个文件,如果该文件已存在则打开文件,删除原有文件内容并从开头开始编辑,如果该文件不存在,则创建新文件。

wb

以二进制格式打开一个文件只用于写入,如果该文件已存在则打开文件,删除原有文件内容并从开头开始编辑,如果该文件不存在,则创建新文件。

w

以读写模式打开一个文件,如果该文件已存在则打开文件,删除原有文件内容并从开头开始编辑,如果该文件不存在,则创建新文件。

wb

以二进制格式打开一个文件用于读写,如果该文件已存在则打开文件,删除原有文件内容并从开头开始编辑,如果该文件不存在,则创建新文件。

a

以追加模式打开一个文件,如果该文件已存在,文件指针将会放在文件的结尾,将新内容写入到已有内容之后,如果该文件不存在,创建新文件进行写入。

ab

以二进制格式打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾,将新内容写入到已有内容之后,如果该文件不存在,创建新文件进行写入。

a

以追加模式打开一个文件,如果该文件已存在,文件指针将会放在文件的结尾,将新内容写入到已有内容之后,如果该文件不存在,创建新文件进行写入。

ab

以二进制格式打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾,将新内容写入到已有内容之后,如果该文件不存在,创建新文件进行写入。

简单总结起来就是: r (read)读取,w (write)写入,a (add)追加,配上后可读可写。

Python 内置文件打开和关闭函数

open(file, mode=‘r’, buffering=-1, encoding=None),文件打开函数,返回一个 file 对象,从而可以对文件进行读写操作。

  • file,要访问的文件名称,是一个字符串值,比如:’python-100.txt’,或者可以包含文件路径,即’C:\Users\Desktop\python-100.txt’。
  • mode,决定了文件的打开模式,默认是 ‘r’ 只读模式。
  • buffering,如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
  • encoding,对文件的内容进行编码,比如采用 ‘utf-8’ 编码方法。

    close(),文件关闭函数,没有返回值,用于关闭一个已打开的文件,关闭后的文件不能再进行读写操作。

  • close() 函数没有参数。open()close() 模式

    每一个文件打开 open() 函数必须搭配一个文件关闭函数 close(),这样养成一个良好的编码习惯。

    示例:

    # 打开 'python-100.txt' 文件,如果文件不存在会在程序文件 *.py 所在的目录下创建该文件。file = open('python-100.txt', 'w')print('测试1:python-100.txt 文件已打开。')# 关闭已打开的 'python-100.txt' 文件file.close()print('测试1:python-100.txt 文件已关闭。')# 打开 'C:\Users\Desktop\py' 路径下的 'python-100.txt' 文件。file = open('C:\\Users\\Desktop\\py\\python-100.txt', 'w')print('测试2:python-100.txt 文件已打开。')# 关闭已打开的 'python-100.txt' 文件file.close()print('测试2:python-100.txt 文件已关闭。')

    withopen() 模式

    这种模式下文件打开之后不需要写入文件关闭函数 close(),程序会在执行完 with 结构体中的程序后自动关闭打开的文件。

    示例:

    # 打开 'python-100.txt' 文件,如果文件不存在会在程序文件 *.py 所在的目录下创建该文件。with open('python-100.txt', 'w') as f:print('测试1:python-100.txt 文件已打开。')print('测试1:python-100.txt 文件已关闭。')# 打开 'C:\Users\Desktop\py' 路径下的 'python-100.txt' 文件。with open('C:\\Users\\Desktop\\py\\python-100.txt', 'w') as f:print('测试2:python-100.txt 文件已打开。')print('测试2:python-100.txt 文件已关闭。')

    文件读写方法

    当我们打开一个文件之后,根据需要我们会对文件内容进行一些操作, Python 当然为我们提供了文件内容的读写方法。

    以下表格内列出了一些常用的文件读写方法:

    读写方法

    描述

    read()

    一次性将文件中的内容全部读取出来,缺点就是文件过大的话很容易导致内存崩溃。

    read(n)

    一次读取 n 个字符,如果再次读取,会在上一次读取过后的位置接着去读取而不是从头开始读取, 如果使用的是 rb 模式,则读取出来的是 n 个字节。

    readline()

    一次读取一行内容,每次读取出来的内容都以换行符 ‘\n’ 结尾。

    readlines()

    一次读取打开文件的全部内容,返回一个列表,每一行内容作为元素放到一个列表中,缺点就是文件内容过大容易出现内存崩溃的问题。

    write(s)

    写入字符串 s,如果再次写入,会在上一次写入的位置末尾继续写入。

    writelines(s)

    写入字符串或列表 s,如果是列表的话列表中的所有元素必须为 string 类型,如果再次写入,会在上一次写入的位置末尾继续写入。

    read() 示例

    # 以 r 模式打开本地建立的 python-100.txt 文件,以 'utf-8' 编码读取文件中的所有内容with open('python-100.txt', 'r', encoding='utf-8') as f:content = f.read()print(content)# 输出结果# Python-100# 坚持100天

    read(n) 示例

    # 1.以 r 模式打开本地建立的 python-100.txt 文件,每次读取 n 个字符with open('python-100.txt', 'r', encoding='utf-8') as f:content = f.read(8)print(content)content = f.read(8)print(content)# 输出结果(注意:每次读取到的换行符 '\n' 也是算一个字符的,换行符位于每行内容的末尾)# Python-1# 00# 坚持100# 2.以 rb 模式打开本地建立的 python-100.txt 文件,每次读取 n 个字节,注意是字节with open('python-100.txt', 'rb') as f:content = f.read(8)print(content)content = f.read(8)print(content)# 输出结果# b'Python-1'# b'00\r\n\xe5\x9d\x9a\xe6'

    readline() 示例

    # 以 r 模式打开本地建立的 python-100.txt 文件,每次读取文件中的一行内容,利用 strip() 函数去掉每一行末尾的换行符with open('python-100.txt', 'r', encoding='utf-8') as f:firstLine = f.readline().strip('\n')secondLine = f.readline().strip('\n')print(firstLine)print(secondLine)# 输出结果# Python-100# 坚持100天

    readlines() 示例

    # 以 r 模式打开本地建立的 python-100.txt 文件,读取文件中所有内容,以列表形式返回with open('python-100.txt', 'r', encoding='utf-8') as f:content = f.readlines()print(content)for line in content:print(line.strip('\n'))# 输出结果# ['Python-100\n', '坚持100天']# Python-100# 坚持100天

    循环读取文件内容示例

    # 每次读取一行内容,该方法较为实用with open('python-100.txt', 'r', encoding='utf-8') as f:for line in f:print(line.strip('\n'))# 输出结果# Python-100# 坚持100天

    write() 示例

    # 以 r 模式打开本地建立的空文件 python-100.txt,向文件中写入内容并读取f = open('python-100.txt', 'w', encoding='utf-8')f.write('Python-100\n')f.write('坚持100天')f.close()f = open('python-100.txt', 'r', encoding='utf-8')print(f.read())f.close()# 输出结果# Python-100# 坚持100天

    writelines() 示例

    # 以 r 模式打开本地建立的空文件 python-100.txt,向文件中写入内容并读取f = open('python-100.txt', 'w', encoding='utf-8')content = ['Python-100\n', '坚持100天']f.writelines(content)f.close()f = open('python-100.txt', 'r', encoding='utf-8')print(f.read())f.close()# 输出结果# Python-100# 坚持100天

    文件内容定位

    定位方法

    描述

    tell()

    返回当前文件读取指针在什么位置,按字节数来确定的。

    seek(n)

    用于移动文件读取指针到指定位置,移动的单位为字节。

    tell() 函数应用示例

    # 以 w 模式打开本地建立的空文件 python-100.txt,获取文件中读取指针的位置f = open('python-100.txt', 'w', encoding='utf-8')print('打开空文件时,指针位置为:', f.tell())f.write('Python-100\n''坚持100天')# 'utf-8'编码格式下,换行符占 2 个字节,汉字占 3 个字节print('写入内容后,指针位置为:', f.tell())f.close()# 输出结果:# 打开空文件时,指针位置为: 0# 写入内容后,指针位置为: 24

    seek(offset, whence=0) 函数应用示例

  • offset,移动偏移的字节数,如果是负数表示从倒数第几位开始。
  • whence,可选参数,默认值为 0。0 代表从文件开头开始算偏移量,1 代表从当前位置开始算,2 代表从文件末尾算起。

    # 以 r 模式打开文件 python-100.txt,移动文件中读取指针的位置f = open('python-100.txt', 'rb')print("1.文件内容为:")print(f.read().decode('utf-8'))f.seek(6)print('\n2.偏移量为 12 个字节时,输出内容为:')print(f.read().decode('utf-8'))f.seek(-12, 2)print('\n3.偏移量为 -12 个字节时,输出内容为:')print(f.read().decode('utf-8'))print('\n4.在当前指针位置偏移:')f.seek(12)print('文件指针当前位置为:', f.tell())f.seek(-6, 1)print('文件指针当前位置为:', f.tell())f.seek(6, 1)print('文件指针当前位置为:', f.tell())print(f.read().decode('utf-8'))f.close()# 输出结果:# 1.文件内容为:# Python-100# 坚持100天## 2.偏移量为 12 个字节时,输出内容为:# -100# 坚持100天## 3.偏移量为 -12 个字节时,输出内容为:# 坚持100天# # 4.在当前指针位置偏移:# 文件指针当前位置为: 12# 文件指针当前位置为: 6# 文件指针当前位置为: 12# 坚持100天

    总结

    本节给大家介绍了 Python 中 文件操作的基本使用方法,主要是文件的读写操作,可以助您更高效的处理爬虫获取到的消息内容。

    • 推荐阅读
    • 突触名词解释(突触是什么意思)

      突触名词解释突触是指一个神经元的冲动传到另一个神经元或传到另一细胞间的相互接触的结构。突触是神经元之间在功能上发生联系的部位,也是信息传递的关键部位。在光学显微镜下,可以看到一个神经元的轴突末梢经过多次分支,最后每一小支的末端膨大呈杯状或球状,叫做突触小体。这些突触小体可以与多个神经元的细胞体或树突相接触,形成突触。从电子显微镜下观察,可以看到,这种突触是由突触前膜、突触间隙和突触后膜三部分构成。

    • 《守望先锋》对战局影响大招top一览 守望先锋对局战绩

      今天小编要为大家带来的是玩家“黑呦酱”分享的《守望先锋》对战局影响大招top一览,感兴趣的玩家赶紧一起来看看吧!守望先锋大招分为四类,控制类,自身BUFF类,辅助类以及伤害类,由于伤害类大部分使用大招时,本体无法进行有效杀伤,且控制类及自身BUFF类需要其他技能的配合,so,此间因素也要加入考量。

    • 运动后喝黑咖啡还能燃脂吗 运动时喝黑咖啡会加快燃脂吗?

      2、运动过程中身体脂肪会加速燃烧,从而具有一定减肥作用;而黑咖啡热量比较小,加上其中含有大量的咖啡因以及维生素、纤维素物质,适量喝可以促进人体肠胃蠕动,加速脂肪代谢分解,对减肥具有促进作用。

    • 斯威汽车质量怎么样(斯威质量好不好)

      2018年6月起,斯威“品质特工队”以四大火炉的重庆作为起点,途径海南、吐鲁番、格尔木三地,历时近一年进行了数十万公里极限环境适应性试验。极端干燥高温环境下,常见车内温度往往会狂飙到60℃以上,而在斯威G01的车厢里,却始终能够保持清新凉爽的状态。一整套严酷考验下来,斯威G01的性能表现完全得以充分认证。这样一算,斯威G01差不多完成了近百万公里的专业级严酷考验。

    • 春天兰花怎么养 春天兰花怎么养浇水

      白墨兰花哪个品种最好白墨兰花是墨兰的珍贵变异品种假鳞茎椭圆形,已有数百年栽培历史,流传至今,不下十数个品种,它叶色莹润、体态优雅、幽香静远、且抗病,白墨兰花比较好的品种一般分企剑和软剑两个品系。什么兰花开花最香兰花品种很多,按花香来排,在兰花界春兰居首,惠兰次之,随后便是建兰、墨兰和寒兰,春兰的花香味最正宗,持久性也极强。

    • 奔驰e300l前进挡总共有几个(你看了奔驰22款E300L升级这套原厂HUD抬头显示效果觉得怎么样)

      从行车安全的角度来考虑,加装一台HUD是非常有必要的。HUD的全称是HeadUpDisplay,中文翻译过来就是抬头显示器。今天星骏汇小陈通过以上的产品配件图了解,我们看到这台奔驰22款E300L升级HUD抬头显示所需要更换的配件有,抬显仪器,高配仪表盖板,高配仪表电脑,雨量传感器,空调管升级HUD抬头显示把仪表台上的那一块盖板换掉,换成高配的预留好显示器孔位的盖板,装上显示器,从而使仪表显示的内容投射到挡风玻璃上面。

    • 儿童葫芦丝表演(通城千人共奏葫芦丝)

      儿童葫芦丝表演香城都市报讯 10月27日,通城县隽水中学参加湖北省“黄鹤杯”美育节节目视频录制现场,七、八年级千名学生,同奏乐曲《龙的传人》。该校相关负责人介绍,本学期,每天下午预备铃响5分钟,七、八年级各班集体合奏葫芦丝。丝竹声声,已渐成校园一道靓丽的风景线。近年来,该校贯彻落实社会主义核心价值观,注重未成年人思想道德建设,坚持开设中华传统和特色民族特色教育课程,促进学生“德智体”全面发展。

    • 鸡娃时代孩子的成长之道(与其1岁就开始鸡娃)

      出生时大脑发育已经完成25%,1岁完成了50%,3岁完成了60%,6岁达到90%。现在小学虽然是零基础入学,取消了统一考试,但是它对学生的要求并没有降低。吃够了佛系养娃的亏,橙子家的老二断然不肯再佛系养了。北京卫视于2018年摄制的纪录片《起跑线》中,有一个7岁的北京女孩令人印象深刻。她的家庭,在北京三环内有一套房,一辆车。妈妈认为,孩子从小培养兴趣,靠的是父母的指引。

    • 环氧树脂的作用与用途(环氧树脂有什么作用与用途)

      环氧树脂的作用与用途具有优良的物理和电绝缘性能,强度高、收缩性低,耐腐蚀以及有高绝缘的优势,所以被称为万能胶。电器、电机绝缘封装件的浇注。从常压浇注、真空浇注已发展到自动压力凝胶成型。长时间接触胶水时,有人会有细微的皮肤过敏和细微瘙痒疼痛的情况,建议在运用时戴上防护手套,如果出现了这样的情况,需要用酒精擦洗,然后用清水冲洗干净。

    • 明月曾照江东寒剧情(明月曾照江东寒剧情介绍)

      明月曾照江东寒剧情剧情简介:美少女战清泓是武林副盟主战破敌之女,从小被父亲禁止涉及江湖事。十年一期的武林大会即将来临,战清泓瞒着家人偷跑下山,立志夺取武林盟主之位。战清泓与温宥也开始互生情愫,奈何最终被世俗礼法所阻碍。与此同时,江湖上风起云涌,战清泓发现自己自幼背诵的家训竟是人人趋之若鹜的第一神功《鹤羽剑法》。