掌握了它,操作文件 so easy

简介: 掌握了它,操作文件 so easy

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)
返回值:布尔值
相关文章
|
存储 数据处理 索引
【100天精通python】Day27:文件与IO操作_CSV文件处理
【100天精通python】Day27:文件与IO操作_CSV文件处理
74 0
|
2月前
|
Python
8-1|pyinstaller打包报错 with open(path, 'rb') as stream: FileNotFoundError: [Errno 2] No such file o 原创
8-1|pyinstaller打包报错 with open(path, 'rb') as stream: FileNotFoundError: [Errno 2] No such file o 原创
|
4月前
|
开发者 Python
【Python】已解决:FileNotFoundError: [Errno 2] No such file or directory: ‘配置信息.csv‘
【Python】已解决:FileNotFoundError: [Errno 2] No such file or directory: ‘配置信息.csv‘
209 0
|
6月前
|
Python
python中文本文件(txt)读写
python中文本文件(txt)读写
50 1
|
6月前
|
Python
python的文件读取基础入门(read(),readlines(),with.open())
python的文件读取基础入门(read(),readlines(),with.open())
48 0
Python文件读取方法:read()、readline()和readlines()的区别
Python文件读取方法:read()、readline()和readlines()的区别
|
Python
轻松读取大文件:Python中read()、readline()和readlines()技巧大揭秘
轻松读取大文件:Python中read()、readline()和readlines()技巧大揭秘
194 0
|
Python
Python 文件操作 with open()
Python 文件操作 with open()
74 0
|
Python
Python对txt、csv文件读写数据
Python对txt、csv文件读写数据
82 0
|
NoSQL Redis Python
python | 使用open读写文件
python | 使用open读写文件
161 0