吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4757|回复: 20
收起左侧

[学习记录] 【笔记】python自学笔记(基础篇)——文件操作

  [复制链接]
qianshang666 发表于 2021-2-6 13:55
本帖最后由 qianshang666 于 2021-2-6 14:03 编辑

大家好,今天讲讲python中的文件操作(由于本人并没有发表过太多帖子,排版不合适等问题希望大家可以理解)
文件操作:文件操作包含读取文件和写入文件,接下来就一一介绍
1.打开文件函数 open(),函数open()接受一个参数,就是要打开文件的名称

[Python] 纯文本查看 复制代码
file_reader = open("yundu.txt")
print(file_reader)

上面两行命令运行结果却是:
open对象.png
这个并不是我们希望看到的结果
是因为函数open()返回的是一个表示文件的对象,在这里,open(“yundu.txt”)返回一个表示文件yundu.txt的对象,python将该对象赋值给file_reader供以后使用
open()函数有一个需要注意的问题,就是我们打开了它,但我们没有调用close()关闭,如果程序存在bug导致close()未执行,文件就不会关闭,这看似微不足道,但可能导致数据丢失
2.关键字with,关键字with在不需要访问文件后将其关闭,你只管打开文件,并在需要的时候使用它,python自然会在合适的时间自动将其关闭
[Python] 纯文本查看 复制代码
with open("yundu.txt") as file_data:
    content = file_data.read()
print(content)

上面的命令第一行是我们通过with关键字表示打开文件的文件对象,as后面的就是文件对象名,然后在第二行,使用方法read()读取这个文件的全部内容,
并将其作为一个长长的字符串赋值给变量content,这样我们就能通过打印content的值将这个文本文件的全部内容显示出来了
文件打开图.png
3.关于文件路径,如果按照我上面的两种方式打开文件,那文本文件必须要在当前执行文件所在的目录中
文件的相对路径是让python到指定的位置去查找,而该位置是相对于当前运行的程序所在目录的
例如:你程序文件在POST文件夹中,该文件夹下面又有一个file文件夹,而yundu.txt文本在file文件夹下,代码就可以这样写
[Python] 纯文本查看 复制代码
with open('file/yundu.txt') as file_data:

这行代码让python到文件夹POST下的文件夹file文件下中查找指定的.txt文件
注意:显示文件路径时,Windows系统使用反斜杠(\)而不是斜杠(/),但我们在python代码中依然可以使用斜杠
文件的绝对路径是指文件在计算机中的指定位置,绝对路径一般较长,我们先将其赋值给一个变量,再将该变量传递给open()
绝对路径.png
这个就是绝对路径
注意:如果在文件路径中使用反斜杠,将引发错误,因为反斜杠可能会对字符串进行转义,例如,对于路径“c:\path\to\file.txt”,其中\t将被解读为制表符,
如果一定要使用反斜杠,可对路径中的每个反斜杠都进行转义,如:“c:\\path\\to\\file.txt”,也可以在路径前面加r,表示强制转义,文件名尽量不要用中文
4.读取和写入
open()第一个参数是文件名称,第二个参数就是读写模式:读取模式('r'),写入模式('w'),附加模式('a'),读写模式('r+'),如果省略模式参数,将以读取模式打开文件
(1)读取模式我们在上面介绍过了,接下来我们介绍一下读取模式中的逐行读取:
[Python] 纯文本查看 复制代码
with open('yundu.txt') as file_data:
    for line in file_data:
        print(line)

通过对文件对象执行循环来遍历文件中的每一行,然后打印输出,但是我们发现有了空白行,因为在每行末尾都有一个看不见的换行符,而函数调用print()也会加上一个换行符
消除这些多余的空白,可以调用函数strip()
逐行读取.png
(2)写入模式是保存数据最简单的方式之一,如果要写入的文件不存在,函数open()将自动创建它,如果存在,写入之前会清空它
[Python] 纯文本查看 复制代码
path = 'write.txt'
with open(path,'w') as file_data:
    file_data.write("zifeiyu")

这样就将文本写入文件了,python只能将字符串写入文本文件,如果要将数值存储在文本文件之中,必须先使用函数str()将其转换为字符串格式。
如果要写入多行要注意一个问题,就是如果写入多行不指定换行符的话,内容将会挤在同一行
写入时要注意open()函数的第三个参数,就是encoding,也就是编码,如果你不进行编码直接存入文字的话,就会变成乱码,文字编码一般我们使用utf-8
[Python] 纯文本查看 复制代码
path = 'write.txt'
with open(path,'w',encoding='utf-8') as file_data:
    file_data.write("zifeiyu\n")
    file_data.write("日暮便是归途\n")

这样就不会时乱码了,我们打开文本看看
写入文本.png
(3)附加到文件就是给文件添加内容,不覆盖原有的内容,如果指定文件不存在,将创建一个空文件,我用上一个write文件演示一下
[Python] 纯文本查看 复制代码
path = 'write.txt'
with open(path,'a',encoding='utf-8') as file_data:
    file_data.write("zifeiyu\n")
    file_data.write("日暮便是归途\n")

我们将模式改为附加,再运行一般程序,write文本就会多出两行
附加写入.png
(4)图片,音乐,视频的写入要使用二进制的方式,写入模式是'wb',而且要使用content方法写入
[Python] 纯文本查看 复制代码
img = requests.get("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2534506313,1688529724&fm=26&gp=0.jpg")
with open('img.jpg','wb')as f:
    f.write(img.content)

这个大家先眼熟一下即可,后面讲到爬虫篇的时候会深入讲解的

以上例子均是使用文本文件做演示,但写入文件并不只是能在txt文件中,也可以是表格,文档,修改后缀名即可,大家可以自行感受

免费评分

参与人数 5吾爱币 +11 热心值 +5 收起 理由
江河社稷 + 1 + 1 热心回复!
qunamr88 + 1 + 1 我很赞同!
天马行星空 + 1 + 1 谢谢@Thanks!
苏紫方璇 + 7 + 1 用心讨论,共获提升!
kof888 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

James0 发表于 2021-2-6 14:09
感谢楼主
sdlyfxjjc 发表于 2021-2-6 14:10
kof888 发表于 2021-2-6 14:14
 楼主| qianshang666 发表于 2021-2-6 15:04
kof888 发表于 2021-2-6 14:14
写得很简单明了啊,新手看得懂,感谢

谢谢你的支持
songwr 发表于 2021-2-6 22:42
写的好细致。一看就不是新手。
alex5153 发表于 2021-2-7 12:17
厉害 ,一起学习
bloodwolf4177 发表于 2021-2-7 19:18
楼主厉害,感谢分享,正在学习中
 楼主| qianshang666 发表于 2021-2-7 19:49
bloodwolf4177 发表于 2021-2-7 19:18
楼主厉害,感谢分享,正在学习中

共同进步,加油
许小展 发表于 2021-2-8 01:20
加油,一起学习!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-2 14:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表