前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >掌握了它,操作文件 so easy

掌握了它,操作文件 so easy

作者头像
Python知识大全
发布2020-02-12 11:39:03
4480
发布2020-02-12 11:39:03
举报

阅读本文需要2.5分钟

Python文件操作

  • 文件操作主要讲解以下内容:
    • 1.文件本身的操作(python内置)
    • 2.系统中文件和文件夹的操作(os和shutil模块当中)
    • 3.系统路径相关操作(os模块中的子模块 os.path)
文件的基本操作:
  • open() 打开或者创建一个文件
    格式:open('文件路径','打开模式')
    返回值:文件io对象

    打开模式一共N种:

        w模式 写模式write  文件不存在时会创建文件,如果文件已存在则会清空文件

        r模式  读模式read  文件不存在就报错,存在则准备读取文件

        a模式 追加模式 append 文件不存在则新建,文件存在则在文件末尾追加内容

        x模式 抑或模式 xor 文件存在则报错,文件 不存在则新建文件

        b模式 二进制模式 binary 辅助模式不能单独使用

        +模式 增强模式plus  也是辅助模式不能单独使用
  • 以上模式可以互相组合:wrax不可以互相组合:

模式

说明

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

w

打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a

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

rb

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

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

ab

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

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

w+

打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

rb+

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

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

ab+

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

  • close() 关闭文件
格式:文件io对象.close()
返回值:None
  • 示例如下:
    # 新建一个文件,文件名为:test.txt
    f = open('test.txt', 'w')

    # 关闭这个文件
    f.close()
读写函数:
  • read() 读取文件
    格式:文件io对象.read()
    返回值:整个文件的字符

    格式:文件io对象.read(字符长度)
    返回值:指定长度的字符
f = open('test.txt', 'r')

content = f.read(5)

print(content)

print("-"*30)

content = f.read()

print(content)

f.close()
  • readline() 读取一行文件
    格式:文件io对象.readline()
    返回值:一行内容的字符串

    格式:文件io对象.readline(字符长度)
    返回值:一行内容的字符串

    注意:字符长度<当前行内内容,则读取指定长度的字符串,并且下次再读取还是在
          这个一行中获取没有读取的内容。字符长度>=当前行内容,直接读取当前行
#coding=utf-8

f = open('test.txt', 'r')

content = f.readline()
print("1:%s"%content)

content = f.readline()
print("2:%s"%content)

f.close()
  • readlines() 将文件中的内容读取到序列当中。
    格式:文件io对象.readlines()
    返回值:列表

    格式:文件io对象.readlines(字符长度)
    返回值:列表

    注意:读取的行数由字符长度决定,如果字符长度读取了N行后,还有指定长度的字符
          没有读取,则直接读取下一行进来
#coding=utf-8

f = open('test.txt', 'r')

content = f.readlines()

print(type(content))

i=1
for temp in content:
    print("%d:%s"%(i, temp))
    i+=1

f.close()
  • write() 写入文件
    格式:文件io对象.write(字符串)
    返回值:写入字符串的长度
  • writelines() 将序列写入文件中
    格式:文件io对象.writelines(序列)
    返回值:None
  • truncate() 字符串截取操作
    格式:文件io对象.truncate(字节长度)
    返回值:截取的字节长度

OS模块:

  • OS -- 操作系统的简称
  • os模块就是对操作系统进行操作
  • 使用该模块必须先导入模块:
    import os
os模块中的函数:

序号

函数名称

描述

格式

1

getcwd()

获取当前的工作目录

格式:os.getcwd()返回值:路径字符串

2

chdir()

修改当前工作目录

格式:os.chdir()返回值:None

3

listdir()

获取指定文件夹中的所有文件和文件夹组成的列表

格式:os.listdir(目录路径)返回值:目录中内容名称的列表

4

mkdir()

创建一个目录/文件夹

格式:os.mkdir(目录路径)返回值:None

5

makedirs()

递归创建文件夹

格式:os.makedirs(路径)

6

rmdir()

移除一个目录(必须是空目录)

格式:os.rmdir(目录路径)返回值:None

7

removedirs()

递归删除文件夹

格式:os.removedirs(目录路径)返回值:None注意最底层目录必须为空

8

rename()

修改文件和文件夹的名称

格式:os.rename(源文件或文件夹,目标文件或文件夹)返回值:None

9

stat()

获取文件的相关 信息

格式:os.stat(文件路径)返回值:包含文件信息的元组

10

system()

执行系统命令

格式:os.system()返回值:整型慎用!玩意来个rm -rf 你就爽了!

11

getenv()

获取系统环境变量

格式:os.getenv(获取的环境变量名称)返回值:字符串

12

putenv()

设置系统环境变量

格式:os.putenv('环境变量名称',值)返回值:无注意:无法正常的getenv检测到。

13

exit()

推出当前执行命令,直接关闭当前操作

格式:exit() 返回值:无

当前os模块的值:

序号

函数名称

描述

1

curdir

os.curdir 获取当前路径 都是.

2

pardir

os.pardir 获取上层目录路径 都是..

3

path

os.path os中的一个子模块,操作非常多

4

name

os.name 当前系统的内核名称 win->nt linux/unix->posix

5

sep

os.sep 获取当前系统的路径分割符号 window -> \ linux/unix -> /

6

extsep

os.extsep 获取当前系统中文件名和后缀之间的分割符号,所有系统都是.

7

linesep

os.linesep 获取当前系统的换行符号 window -> \r\n linux/unix -> \n

os.environ模块
  • os.environ 可以直接获取所有环境变量的信息组成的字典,如果希望更改环境变量,并且可以查询得到,就需要对os.environ进行操作
  • 该模块的所有方法均是字典的方法,可以通过字典的os.environ的结果进行操作。
  • 注意:无论使用os.getenv,putenv 还是使用os.environ进行环境变量的操作,都是只对当前脚本,临时设置而已,无法直接更新或者操作系统的环境变量设置。
os.path模块
  • os.path是os模块中的子模块,包含很多和路径相关的操作
  • 函数部分:

序号

函数名称

描述

格式

1

abspath()

将一个相对路径转化为绝对路径

格式:os.path.abspath(相对路径)返回值:绝对路径字符串

2

basename()

获取路径中的文件夹或者文件名称(只要路径的最后一部分)

格式:os.path.basename(路径)返回值:路径的最后一部分(可能是文件名也可能是文件夹名)

3

dirname()

获取路径中的路径部分(出去最后一部分)

格式:os.path.dirname(路径)返回值:路径中除了最后一部分的内容字符串

4

join()

将2个路径合成一个路径

格式:os.path.join(路径1,路径2)返回值:合并之后的路径

5

split()

将一个路径切割成文件夹和文件名部分

格式:os.path.split(路径)返回值:元组

6

splitext()

将一个文件名切成名字和后缀两个部分

格式:os.path.splitext(文件名称)返回值:元组 (名称,后缀)

7

getsize()

获取一个文件的大小

格式:os.path.getsize(路径)返回值:整数

8

isfile()

检测一个路径是否是一个文件

格式:os.path.isfile(路径)返回值:布尔值

9

isdir()

检测一个路径是否是一个文件夹

格式:os.path.isdir(路径)返回值:布尔值

10

getctime()

获取文件的创建时间!get create time

格式:os.path.getctime(文件路径)返回值:时间戳浮点数

11

getmtime()

获取文件的修改时间!get modify time

格式:os.path.getmtime(文件路径)返回值:时间戳浮点数

12

getatime()

获取文件的访问时间!get active time

格式:os.path.getatime(文件路径)返回值:时间戳浮点数

13

exists()

检测指定的路径是否存在

格式:os.path.exists(路径)返回值:布尔值

14

isabs()

检测一个路径是否是绝对路径

格式:os.path.isabs(路径)返回值:布尔值

15

islink()

检测一个路径是否是链接

格式:os.path.islink(路径)返回值:布尔值

16

samefile()

检测2个路径是否指向同一个文件

格式:os.path.samefile(路径1,路径2)返回值:布尔值

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python 知识大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python文件操作
    • OS模块:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档