我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python12 文件操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python12 文件操作

文件操作

image_1c0ag46vu1lqg1ievebs1kmh4gc9.png-5.4kB
Pycharm使用UTF-8格式,而Windows默认是GBK格式,所以默认pycharm是处理不了BGK格式的,所以要要定义使用UTF-8格式打开Windows文件的内容。

.read():读取文件所有内容。
image_1c0ag5e9f13v91nofo3mek0fcam.png-18.3kB

image_1c0ag8ico1udedpat5t1pj2c5713.png-8.6kB
同样是读取文件内容,但是print(data2)时没有任何数据显示,这是因为data1读取完成的时候,光标位置处于test.txt文档中的最下面,所以当data2再去读取时,下面已经没有数据了。

1.读写

image_1c0agba2m1cnahau1uga11efnds1g.png-9.2kB
image_1c0agbg9h1682lti114j11to1hc81t.png-12kB
报错没有写入的权限。

image_1c0agbrqf1vt01r70158013cp1llr2a.png-9.5kB
使用’r’赋予只读权限,不写的话默认就是只读。

image_1c0agcehl1d7819dtnb91ln1il2n.png-11.9kB
因为是只读所以不能写入

image_1c0agcrk71rvdg7626moee18qv34.png-9.3kB
将其赋予写入权限

image_1c0agdm0lqhf142ghg4lbbjtb3h.png-11.2kB
可以看到只能写入,却不能读取(代码中有读取的动作)。

image_1c0age4vt1194t851im61atj1s5j3u.png-9.3kB
image_1c0agec7o1klj1vp2r81oku1u2e4b.png-4.4kB
可以看到test文档已经被写入内容了,但是内容却都写在了同一行。

image_1c0agg7uu18dbhfpkro1g6f1k2l6o.png-10kB
\n表示换行符
f.close(),写入内容后需要关闭文档,关闭后自动保存。
image_1c0aghb6urm4ju41v5g3vv1nom75.png-4.6kB
注意’w’权限会覆盖之前有的内容。

image_1c0aghok91qpa23h1hq1phv19ig7i.png-6.9kB
image_1c0aghv4prj5i8229rbbga5a7v.png-2.7kB
可以看到文档中直接了内容,并不会覆盖。

image_1c0agkg6q1bdf1kldikb12gt18b58c.png-9.1kB
每一行定义一个数字

image_1c0agkskufhb1un3doi1mm16k18p.png-15.7kB

image_1c0agl2f46fo9i5lma1lu014md96.png-1.5kB
读取了多行的内容,但是这样写的代码太多,可以使用循环替代重复代码
image_1c0agllfk12r1tf76n217621d9e9j.png-8.5kB

2.readlines

image_1c0agmpr2ubn1n6rbvilvta2a0.png-6.3kB

image_1c0agmun11mffn91134g9fdg41ad.png-3kB
可以看到以列表的形式,将每一行的列表元素在同一行打印出来。

image_1c0agnb3s8l1adj1pjg1tg516foaq.png-7.7kB

image_1c0agnh3o1vd21ijga2l1ihnfp8b7.png-1.6kB
将列表的每一个元素分行打印出来,但是可以看到打印的时候将\n也打印出来了,所以显示的时候会有空行。

image_1c0agnucbhgs1m4mrhal0g179fbk.png-8.7kB

image_1c0ago5f01s26154rvlj1khpku7c1.png-2.2kB
可以看到,通过strip分隔了空行(也就是删除,因为括号中是空格所以删除所有空格,如果是其他字符就删除对应的所有字符),显示就正常了。

image_1c0agp77r1k0gjgkfelarf55kdr.png-25kB

image_1c0agone810fh1qaa1ovoipc14t0cu.png-4.2kB

  • readlines的缺点
    Readlines会读取文件的所有内容,并将读取的内容放入到内存中,读取的文件小的话内存是可以接受的,但是如果读取的文件过大,超过了内存的大小就不可以了(比如内存8G,你的文件有20G)。
    image_1c0agqv9dru13v7p3e11gh18qse8.png-9.9kB

解决方法就是直接使用for循环就可以了

这种方式就是读取一行后,打印一行,在打印下一行前会把之前打印的内容在内存中删除,这样内存中就始终保存一行的内容,不会占据过大内存。

内存只保存一行是因为f打开的文件编程了一个叫迭代器的东西,迭代器后面会讲。

不使用readlines读取,显示的内容就不在会是列表了,也就无法将文档中的下标读取出来了,就没办法在通过匹配下标的方式去针对达到指定行进行操作了。
可以通过使用计数器来判断读取文档到多少行了。

image_1c0ags7ed1mfr1a0e133avu81fkhel.png-17.5kB

image_1c0agspoq1rn8irme6r1aqaauuf2.png-4.2kB

### 3.文件修改
image_1c0agtjoe1k941vtr112hhp91rg4ff.png-22kB
F_1是旧文件
F_2是新文件
要求:通过读取旧文件的指定内容,将其修改并写入新的文件中;如果没有读取到指定内容,也将新内容写入到新文件中。
代码含义:如果发现小明要去玩内容在文件中,就通过replace替换关键字;如果没有发现指定内容,根据else代码直接写入新文件中。
但是此代码中可以看到,出现了重复代码f_2.write(line)

image_1c0agu43ad1a6srj7j1k3fhabfs.png-18.5kB
只需要将缩进等级调整一下,如果发现指定内容就进行替换,之后会将替换内容写入到新文件。
即使没有发现指定内容,那么就不需要他换,直接将循环到旧文件的内容写入到新文件。

image_1c0aguh9a1m4a4rhv11oc71t17g9.png-25kB
也可以将要查找和替换的信息赋值变量,然后用变量名称来代替。

4.with语句

image_1c0ah05i51lsgo4h19gabms1fl3gm.png-8.4kB
使用with语句可以在该语句模块最后不适用close来关闭文件,因为with语句最后会自动关闭;
这里的as f,相当于f = open…….
image_1c0ah0hqtgu1r411u0h18cks24h3.png-0.8kB

image_1c0ah0p31fgkn1ohsi1hgq15aahg.png-12.5kB
可以通过with同时打开多个文件;
从代码中可以看出是分了多行来打开多个文件,其实也可以在同一行来打开,只不过python官网的开发规范说明了一行的开发代码不应该超过80个字符,当同时打开多个文件时,可能就超过了限制的80个字符,所以这里我们没打开一个文件就换一行来写代码。

总结

r只读

w只写(覆盖)

a追加(最后一行)

r+读写(读后可以写,如果是写就是追加到最后一行)

w+写读(覆盖后可以读)

a+追加写读

rb使用二进制模式打开(打开的数据都是bytes格式)

wb通过bytes的格式写入,如果使用过wb必须制定字符集(如:encoding='utf-8'),当夸系统平台时会用到二进制数据。

ab用二进制追加

seek:重置读取的下标位置到最顶

tell:查看当前下标的位置

truncate():截断剩下的字符串(剩下也就是还没读取的),默认截断后面所有,括号中指定数字就是指定多少个字符。

flush():一般文件需要关闭后才换刷新缓冲区将内容写入文件,但是用flush后不需要等文件关闭,直接指定缓冲,将内容写入文件

文件还有很多其他方法:
image_1c0ah39qc13q24r2hs6p789ebht.png-75.5kB

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python12 文件操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python12 文件操作

文件操作Pycharm使用UTF-8格式,而Windows默认是GBK格式,所以默认pycharm是处理不了BGK格式的,所以要要定义使用UTF-8格式打开Windows文件的内容。.read():读取文件所有内容。同样是读取文件内容,但是
2023-01-31

python 文件操作api(文件操作函数)

python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来
2022-06-04

文件操作

文件操作一、关于文件读写的笔记(一) 文件概述文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容文件都是按照2进制进行存储的,但在表现形式上有2种:文本文件和二进制文件。1. 文本文件  文本文件一般由单一特定编码的字符组成,如u
2023-01-31

python 文件操作

python基本的文件操作,包括 open,read,write对文件操作流程:1.打开文件,得到文件句柄并赋值给一个变量2.通过句柄对文件进行操作3.关闭文件新建一个txt文件,内容是《Yesterday When I Was Young
2023-01-30

Python3 文件操作

Python3 文件操作打开方式手动挡open+close自动挡with,自关闭常见操作w, r, a, bwritereadlinereadlinesseektellread相关模块fnmatchglobpickleStringIOshe
2023-01-31
2023-09-05

python文件操作

1. 文件操作 open 打开 f = open(文件路径, mode="模式", encoding="编码格式") 最最底层操作的就是bytes 打开一个文件的时候获取到的是一个文件句柄.
2023-01-30

20190221-文件操作

假定一个全英文的文件,读取该文件,请统计多少个不重复的单词,并且在另外一个文件中写上结果每个单词出现的次数,以及一共有多少个不重复的单词分别为哪些 注意:文件中可能包含特殊符号Step1:打开文件,可使用方法如下:  方法1:fp = op
2023-01-30

python 操作文件

python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。操作前需要 import os;返回当前目录,不包括文件名: os.getcwd();返回指定目录下的所有文件和目录名:os.listdir("dirn
2023-01-31

python---文件操作

一、对文件操作流程1.打开文件,得到文件句柄并赋值给一个变量2.通过文件句柄对文件进行操作3.关闭文件二、文件打开模式f = open("file_test","r",encoding = "utf-8")    #打开文件,“读模式”,只
2023-01-31

Python3文件操作

打印到屏幕产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个表达式。这个函数传递表达式转换为一个字符串,如下结果写到标准输出 -#!/usr/bin/python3print ("Python is really a g
2023-01-31

python_文件操作

一、文件处理基本形式 # 1. 打开文件,得到文件句柄并赋值给一个变量# 文件句柄 = open('文件路径', '模式', '操作文件的字符编码')f = open('carter', 'r', encoding='UTF-8') #
2023-01-30

python-文件操作

文件操作1.  读 / 写 操作读取: r (read):只能读不能写,文件不存在就报错​#打开文件:    object = open('某txt文件',mode = 'r',encoding = '编码')​#读取文件所有内容到内存:
2023-01-31

python3--文件操作

python文件操作文件以什么编码存储,就以什么编码打开参数:1 文件路劲2 编码方式3 执行动作(打开方式):只读,只写,追加,读写,写读例子现有一个文档,制服护士空姐萝莉联系方式.txt,怎么用python打开?f=open(D:\制服
2023-01-30

Python--文件操作

文件处理流程1.打开文件,得到文件句柄并赋值给一个变量2.通过句柄对文件进行操作3.关闭文件 r模式,默认模式,文件不存在则报错w模式,文件不存在则创建,文件存在则覆盖a模式,文件不存在则创建,文件存在则不会覆盖,写内容会以追加的方式写(写
2023-01-30
2023-10-20

3 Python文件操作

open以什么编码方式存储文件,就以什么编码方式打开f = open('d:\模特主妇护士班主任.txt',encoding='utf-8') # 绝对路径打开f.close()f = open('模特主妇护士班主任',encoding=
2023-01-31

Python文件IO操作

文件IO常用操作:open打开read读取write写入close关闭readline行读取readlines多行读取seek文件指针操作tell指针位置打开操作:open(file, mode='r', buffering=-1, enc
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录