type
status
date
slug
summary
tags
category
icon
password

前言

绝对路径和相对路径说明
  • 绝对路径:从根目录开始的完整路径
  • 相对路径:从当前工作路径开始的路径
路径中(.)和(..)含义
  • ./ 表示当前目录
  • ../ 表示当前目录的上一目录
  • ../../ 表示当前目录的上上目录
文件路径中斜杠和反斜杠问题:
windows系统使用反斜杠(\),在Linux和OS X中用斜杠(/)
总结:
notion image

1 、目录操作

Python中, 对路径, 文件以及文件相关操作需要使用os模块.
在本人桌面路径:C:\Users\wk\Desktop有目录test如下所示:

1.1 目录查询、获取

1.2 递归遍历目录os.path.abspath("test\test-2\1.txt")

1.3 创建目录

1.4 删除/重命名目录

 

2、文件操作(要包含对文件的查找和筛选)

8.1 打开文件

常用参数:
  • file:读取文件路径
  • encoding:编码方式(二进制文件不能结合编码参数使用)
    • gbk编码: (国内) 中文占2个字节, 数字, 字母, 符号等都占1个字节.
    • utf-8编码: (国际通用)中文占3个字节, 数字, 字母, 符号等都占1个字节.
    • 遇到乱码的情况只有一种原因: 编解码不一致.
  • mode模式:
    • r:只读(默认),r+:可读,可开头写入
    • w:清空写入,w+ :清空写入并可读
    • a:追加,a+:追加并可读
    • b:二进制模式打开,默认为t,文本模式(不单独使用,需要组合使用rt,at,wt)
      • 文本模式t:字符流,将文件的字节按照某种字符编码理解,按照字符操作。open默认mode就是rt
      • 二进制模式b:字节流,将文件按照字节理解,与字符编码无关。二进制模式操作时,字节操作使用bytes类型
       
mode模式
r
r+
w
w+
a
a+
(不存在)创建
(清空原数据)覆盖
指针在开始
指针在结尾
用open函数打开文件之后,需要用close()函数关闭文件, 来释放内存资源. 为了防止忘记关闭文件而导致的内存资源浪费的情况, 可以用上下文管理器的方法, 当语句体用完之后会自动回收资源, 无需手动关闭文件.

8.2 with open()as f

8.3 读取数据

8.3.1 文件读取的三种方法

现有文件namelist.txt,文件中内容为:
王大样,100 王小样,99 王中样,98
 

8.3.2 读取中偏移量

seek(offset[,whence])可以定位读取起点 (注:whence为可选,默认为0. offset值按汉子两字符,英文数字一个字符计算)
 
  • offset(偏移量) :
    • 大于0 : 向文件末尾方向移动字节数
    • 小于0 : 向文件开头方向移动字节数
  • whence(相对位置):
    • 0 : 从文件开头开始偏移(默认为0)
    • 1 : 从文件当前读写位置开始偏移
    • 2 : 从文件末尾开始偏移

8.2 将数据写入文件

8.2.1 覆盖写入(w)

示例中,调用open()时提供了两个实参,第一个实参是要打开的文件名称;第二个实参(‘w’),是以写入模式打开这个文件。如果没有第二个实参,Python默认是只读模式打开文件。如果你要写入文件不存在,则会创建它。如果写入文件有原先有内容,则会被覆盖。
模式:
  • r:可指定读取模式
  • w:写入模式
  • a:附加模式
  • r+:读取和写入模式

8.2.2 附加写入(a)

附加模式打开文件,可实现文件原内容不覆盖。如果指定的文件不存在,则会新建。
 

8.3.2 文件操作

文件相关函数
说明
access(path,accessmode)
获取文件是否有指定的访问权限,有R_OK(读取),W_OK(写入),X_OK(执行),F_OK(存在)
chmode(path,mode)
修改访问权限
rename(src,dst)
重命名文件,src→dst
remove(path)
删除指定路径的文件
stat(path)
返回指定路径的文件信息
startfile(path[,operatin])
使用关联的程序打开指定路径的文件

8.4 异常

Python使用被称为异常的特殊对象来管理程序执行期间发生的错误。如果你编写了处理异常的代码,程序将继续运行;反之,程序将终止,并显示一个traceback,期中包含有关异常的报告。
异常是使用try-except代码块来处理的。使用这个代码块让Python执行指定的操作,同时告诉Python发生异常之后怎么办。

8.3.1 处理异常

在程序出错时,会返回一段traceback,其中会报出你的代码中存在的错误类型,比如:TypeError,IndentationError,ZeroDivisionError,FileNotFoundError 等等
eg:print(5/0)

显示错误,得到的traceback:
Traceback (most recent call last): File "C:\Users\wk\Desktop\Python\python_use.py", line 99, in <module> print(5/0) ZeroDivisionError: division by zero

处理:
让Python尝试运行try代码块中的代码,如异常则执行except代码块中的异常处理办法,如执行成功则将要执行的代码存放在try代码块中。

实战:编写一个除法计算器,并添加异常处理方式

8.5 存储数据

这里提供一种简单的方式用来存储数据,那就是使用模块json用来存储数据。

8.4.1 使用json.dump()和json.load()

 
  1. 用于存储数据的程序:用json.dump(infor,filename)
  1. 用于将数据读取到内存中程序:用json.load(filename)
 
存储数据
将numbers列表数据存储在json格式的文件中
读取入内存: