首页 > 编程语言 >Python:文件操作详细教程

Python:文件操作详细教程

时间:2024-04-09 15:46:19浏览次数:22  
标签:文件 教程 详细 Python 写入 file 操作 打开 open

文件操作示例分析:

文件操作一般要经历三个步骤:

  1. 打开文件
  2. 操作文件
  3. 关闭文件

读取操作示例:

>>>f = open('test.txt', 'r')          # 打开文件test.txt, r表示只读,文件不存在则报错
>>>f.read()                           # 文件打开后,read()方法将文件内容读到内存中
'123432'                              # 获取的内容是一个字符串
>>>f.close()                          # 文件使用完必须关闭,打开文件占用资源

打开文件:文件句柄 = file('文件路径',‘模式’)

备注:Python中打开文件有两种方式,即open()和file(),本质上前者会调用后者进行文件操作,推荐使用open

上诉,方式中,每次打开一个文件操作完成后,都要手动关闭文件,操作繁琐,易忘。推荐一种更加简便的操作方式:with语句, 这种语句帮助我们自动完成f.close() 这一步操作。

with open('test.txt', 'r') as f:
    file = f.read()
    print(type(file))
    pirint(file)
 
# 输出结果
<class'str'>  # 取出的内容还是字符串
123432       # 虽然没有看到引号,但还是字符串
----------------------------------------------------------------------
# with 语句的多文件同时处理
# Python2.7版本之后,with 支持同事打开多个文件
with open('db1','r') as f1, open('db2', 'r') as f2:
    pass
 
-----------------------------------------------------------------------
 
# 一个文件读取一行处理一行然后写入另一个文件一行
with open('db1', 'r', encoding="utf-8") as f1, open('db2', 'w', encoding="utf-8") as f2:
    for line in f1:
        new_str = line.replace('abc', "st")
        f2.write(new_str)

写入文件示例:

with open('test.txt', 'a+') as f:
    f.write('hello world')

备注:所有的文件操作,如果文件没有写绝对路径,默认路径为程序所在路径,文件操作要注意操作文件的存在性。

文件操作权限:

r   # 以只读的方式打开文件,文件的指针放在文件的开头,默认方式
r+  # 以读写模式打开,和追加效果一样,但是如果文件不存在,不会像a一样创建文件,而是报错
rb  # 以二进制格式打开一个文件用于只读,文件指针将会放在文件的开头,这是默认模式
rb+ # 以二进制格式打开一个文件用于读写,文件指针放在文件的开头
w   # 替换重写(覆盖写入)
w+  # 以读写模式打开文件,如果该文件已经存在则将其内容覆盖,文件不存在则创建文件
wb  # 以二进制格式打开一个文件只用于写入,如果该文件已经存在则将其内容覆盖,文件不存在则创建文件
wb+ # 以二进制格式打开一个文件用于读写, 如果该文件已经存在则将其内容覆盖,文件不存在则创建文件
a   # 在原文件的基础上,追加写入,文件指针放在文件结尾,如果文件不存在,则创建新文件进行写入
a+  # 打开一个文件用于读写,如果文件已经存在,文件指针放在文件结尾。文件打开时是追加模式,如果文件不存在则创建文件用于读写
ab  # 以二进制格式打开一个文件,如果文件存在,文件指针放在文件结尾,文件不存在则创建新文件并进行写入
ab+ # 以二进制格式打开一个文件用于追加,如果文件存在,文件指针放在文件结尾,文件不存在则创建新文件用于读写
b   # 二进制文件,主要用于跨平台,来解决windows和linux的回车换行区别,按照字节
x   # python3中添加,如果文件存在则报错,不存在则创建并写入内容

文件其他方法:

f.mode      # 显示文件打开格式
f.flush()   # 把缓冲区中的数据刷到硬盘,当你往文件里写数据时,python会先把你写的内容写到缓冲区,等缓冲区满了再统一自动写入硬盘,因此减少了对硬盘的操作次数,毕竟硬盘的速度比内存慢得多
f.read()      # 把文件一次性读入内存
f.read(szie)  # 一次读取指定大小的文件
f.readline()  # 读取一行文件
f.readlines() # 把文件都读入内存,并且每行转成列表中的一个元素
f.tell()      # 显示程序光标所在该文件中的当前的位置,位置是以字节来算的
f.seek()      # 跳到指定位置,f.seek(0) 是返回文件开始,位置是以字节来算的
f.truncate()   # f.truncate(10) 从文件开头截取10个字符,超出的都删除
f.writelines() # 参数需为一个列表,将一个列表中的每一个元素都写入文件
f.xreadlines() # 以迭代的形式循环文件,在处理大文件时效率极高,只记录文件开头和结尾,每循环一次,只读一行,因此不需要将整个文件都一次性加载到内存,而如果用readlines(),则需要将整个文件都加载到内存,处理大文件不合适。
f.next()       # 获取下一行数据,不存在,则报错

文件对象的属性

#学习中遇到问题没人解答?小编创建了一个Python学习交流群:153708845
file.closed       # 返回True如果文件已经关闭,否则返回False
file.mode        # 返回被打开文件的访问模式
file.name        #  返回文件的名称
file.softspace  # 如果用print输出后,必须跟一个空格符,则返回False ,否则返回True

文件读取选择:

  • 文件很小,read() 最方便
  • 不确定文件大小,反复调用read(size) 安全
  • 如果是配置文件,调用readlines() 最方便

操作系统中文件操作

import os    # python中的文件操作需要导入os模块
os.rename( current_file_name, new_file_name)   # 文件重命名
os.remove( file_name )   # 删除文件
os.mkdir( "test")            # 创建一个目录test
os.chdir( "newdir" )        # 切换目录到newdir
os.getcwd()                   # 获取当前目录的路径
os.rmdir( "dirname" )     # 删除目录,在删除目录前,它的所有内容应该先被清除

标签:文件,教程,详细,Python,写入,file,操作,打开,open
From: https://www.cnblogs.com/xxpythonxx/p/18124116

相关文章

  • Python实现压缩和解压缩
    压缩和解压缩是日常常用的操作,不管是windows上图形界面的操作,还是linux上用命令来进行压缩解压缩,总的而言都还是比较方便的。但用代码来实现就没做过,近期也得实现代码压缩与解压缩操作,所以就抽时间来研究一下。一、zip文件压缩和解压缩实现importosimportzipfile#函数功......
  • Python中协程(coroutine)详解
    一、协程和线程的比较及其适用场景1共用变量问题多线程中可能出现多个线程争抢变量,所以变量需要加锁;协程中任一时刻都只有一个线程,所以变量不需要加锁。但是协程虽然不像多线程争抢变量但仍是和多线程一样共用变量的,即共用变量在某处改变在另外一处引用时也会发生改变。2协......
  • Python数据分析 numpy 笔记
     B站课链接:【Python数据分析三剑客:NumPy、Pandas与Matplotlib】https://www.bilibili.com/video/BV1Yb4y1g7SV/?p=16&share_source=copy_web&vd_source=e883bdf439c7a2e47e9145990387a56b 014,开始使用numpy(1),numpy介绍   (2),导入numpy库,并查看numpy版本#数据分析三剑......
  • ubuntu16.04 wordpress建站教程
    四、wordpress搭建完成本地浏览器输入服务器IP地址,跳转至wordpress安装界面在安装界面中输入数据库密码即可完成安装本地机器输入IP地址/wp-admin进入wordpress后台登录成功......
  • 利用python在网上接单赚钱,兼职也能月入过万,还不赶紧学起来
    学习python编程,不仅可以找一份高薪工作,而且如果不打算转行或者是在校学生的话,也能为你日常生活工作提供一些帮助。Python就是以其简单易学的特性而闻名于世的,所以不一定非得是程序员才学它,其他行业的零基础人员也能轻松学会,并利用它开创副业赚钱。Python兼职副业:可以到一......
  • 学会Python爬虫,你也能月薪过万!
    随着懂爬虫、学习爬虫的人越来越多,Python爬虫的岗位需求也越来越大。一方面,互联网可以获取的数据越来越多。另一方面,像Python这样的编程语言提供越来越多的优秀工具,也让爬虫变得简单、容易上手。利用爬虫我们可以获取大量的价值数据,从而获得感性认识中不能得到的信息。而......
  • Haiper:免费AI视频工具,媲美Sora (附使用教程)
    大家好,我是斜杠君。今天为大家介绍一款AI视频工具。它不仅免费使用,效果稳定,媲美Sora,而且操作简单,是视频创作者的理想伙伴。使用教程免费使用:无门槛的创作体验无订阅,无积分,无限制。这款AI视频工具的最大优势在于它的免费性。用户无需担心订阅费用或是积分制度,可以随时随地开始他......
  • 【最新】Claude Pro订阅充值教程,超大杯模型Claude 3 Opus模型体验方法
    一、关于ClaudePro|Claude3OpusClaude3系列包含三个大模型,按能力由弱到强别是:Claude3Haiku(最小/速度最快)Claude3Sonnet(标准/免费使用)Claude3Opus(最强/需要付费订阅)其中,最强的Opus在多项基准测试中得分都超过了GPT-4和Gemini1.0Ultra,......
  • Python爬虫实例
    使用正则表达式和爬虫爬虫实例一:#第好几个方法实例importrequests#先导入爬虫的库,不然调用不了爬虫的函数importre#下面是可以正常爬取的区别,更改了User-Agent字段headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/53......
  • MQTT用python写的收消息例子
    在MQTT官网给的sub_wss.py例子中修改改写自己的用户名和密码BROKER='*******.ala.cn-hangzhou.emqxsl.cn'//改成自己的连接地址USERNAME='**************'//用户名PASSWORD='*************'//密码注意这句是改使用v1回调API(与旧版本的库一起使用)。原......