python关于文件操作详细笔记

一.文件的打开

使用open:形式:open("文件路径",mode="",encoding="")

1.文件路径:

(1).绝对路径:

       文件从根目录开始,在计算机文件系统中的完整位置。

①表示形式:

        在 Windows 系统中,绝对路径通常以盘符(如C:D:)开头,后面跟着反斜杠\分隔的各级目录和文件名。例如:

"D:\office2\xhkt\考生文件夹\工作.txt"
②优点:

        明确性:绝对路径清晰地指定了文件或目录的位置,不受当前工作目录的影响。无论在哪个目录下运行 Python 程序,只要绝对路径正确,都能准确找到目标。

③缺点:

       可移植性差:在不同的操作系统之间移植代码,需要注意绝对路径的格式差异。

(2).相对路径:

        相对于当前你的程序所在文件夹的位置

①表示形式:

        例如:

"文件夹1/花花.txt"

"./花花.txt"   ./表示当前文件夹

"../文件夹2/花花.txt"   ../表示返回上一层文件夹
②优点:

        灵活度高:当整个项目的目录结构发生变化时,只要文件之间的相对位置关系保持不变,代码依然能够正确地找到相关文件。

③缺点:

        路径依赖:如果脚本的执行位置发生变化(比如从一个目录下直接执行变为从另一个目录下导入执行),相对位置可能会导致找不到文件的情况。

2.mode="":

        指定文件打开方式

         r:读取

         w:写入

         a:追加补充

         b:若是非文本,则要写rb,wb

3.encoding="":

        指定文件编码方式

        常见:UTF-8

                   GBK

4.代码:

f=open("练习.txt",mode="r",encoding="utf-8")#把读到的存给f

二.文件的读取和打印

第一种:

f=open("练习.txt",mode="r",encoding="utf-8")#把读到的存给f

这种形式下每次读取写入都要进行关闭操作

close()

第二种:

with open("练习.txt",mode="r",encoding="utf-8") as f :

with形式下不需要进行关闭操作

        将文件"练习.txt"存给f后,如何进行打印

1.文件全部读取打印:

#用content读取出来(全部读取)
content=f.read()
print(content)

2.文件一行一行读取打印(最常用):

#一行一行读取(最常用)
line=f.readline().strip()
print(line)
line=f.readline().strip()
print(line)
"""
因为一个print自带一个换行,而文本中本身就有换行,一行一行打印出来会出现有空白行,用strip删掉
strip作用(去除字符串两端的空白,空格,换行,制表符)
"""

3.文件多行全部读取打印:

#全部行读出来,打印成为一个列表
line=f.readlines()
print(line)

4.for循环全部读取打印(最重要):

for line in f:#最重要
    print(line.strip())

三.非文本文件的读取和打印

        照片打印:

#读取照片
#想要读写非文本文件的时候加上b
with open("樱花.jpg",mode="rb") as f:
    for line in f:
        print(line)

四.文件的写入

1.写入文件第一种方式:

        mode=w
        w下如若文件不存在就会新建文件
        w下,每一次open都会清空文件里的内容

f=open("练习1.txt",mode="w",encoding="utf-8")#打开
f.write("hh")#写入
f.close()#第一种形式下写入打开文件要进行关闭链接操作,不然对程序不好,文件会千疮百孔

2.写入文件第二种方式:

        mode=a
        a模式下会接着文件之前的内容往下写,不会清空

f=open("练习1.txt",mode="a",encoding="utf-8")
f.write("hh")
f.close()#第一种形式下写入打开文件要进行关闭链接操作,不然对程序不好,文件会千疮百孔

五.文件的复制

        从源文件中读取内容,写入到新路径中

#若一行代码太长,可分两行,但要在第一行加上“\”,表示两行时一起的
with (open("樱花.jpg",mode="rb") as f1,\
      open( "樱花2.jpg",mode="wb") as f2):
    for item in f1:
        f2.write(item)

六.文件的修改(综合运用)

修改文件做法:
        1.从源文件中读出
        2.在内存中修改
        3.把修改后的内容写入新文件
        4.删除源文件,修改新文件的名字为源文件

#文件修改(把姓周的都改为姓杨的)
import os
#和操作系统相关的模块引入,引入os
import time
#引入和时间相关的模块(查看运行)(使运行速度变慢)
with open("人名单.txt",mode="r",encoding="utf-8") as f1,\
    open("人名单_副本.txt",mode="w",encoding="utf-8") as f2:
    for item1 in f1:
        item1=item1.strip()#去除换行符号
        if item1.startswith("周"):#判断首字母
            item1=item1.replace("周","杨")#替换首字母
        f2.write(item1)#写入新文件
        f2.write("\n")#加换行符号(因为原本就有换行符)
# 删除文件函数
#time.sleep(3) 让程序睡眠三秒
os.remove("人名单.txt")
#文件重命名函数
#time.sleep(3) 让程序睡眠三秒
os.rename("人名单_副本.txt","人名单.txt")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值