1读写文件
当程序运行时,我们可以用变量来保存运算结果,而程序运行关闭后,我们可以将数据保存到文件中。本节学习的重点就是如何使用pyhton在硬盘上创建、读取和保存文件。
1.1 文件与文件路径
文件的两个属性:“路径”和“文件名”,路径指明文件在计算机上的位置,文件名是指该位置的文件的名称。
在windows上,文件夹之间使用反斜杠 '\' 作为分隔符。通常我们用`os.path.join()`函数来创建文件名称字符串。
import os
os.path.join('Datawhale\\POA', 'douc')
# 'Datawhale\\POA\\douc'
返回的结果是('Datawhale\\POA\\douc'),看起来文件夹之间的分隔符是双反斜杠,这是因为第一个反斜杠是用来转义的。
1.2 当前工作目录
使用os.getcwd()函数可以获取当前工作目录的字符串,get current working directory。
os.getcwd()
# 'F:\\Datawhale'
os.chdir()函数则可以改变当前工作目录,change directory。
os.chdir('F:\\Datawhale\\POA')
os.getcwd()
# 'F:\\Datawhale\\POA'
1.3 路径操作
1.3.1 绝对路径和相对路径
“绝对路径”,总是从根文件夹开始。
“相对路径”,相对于程序的当前工作目录。
相对路径中,单个句点“.”表示当前目录的缩写,两个句点“..”表示父文件夹。
将相对路径转换为绝对路径,返回绝对路径的字符串, absolute path。
os.path.abspath('.')
# 'F:\\Datawhale\\POA'
判断是否为绝对路径,返回False,is absolute?
os.path.isabs('.')
# False
os.path.isabs(os.path.abspath('.'))
# True
1.3.2 路径操作
os.path.relpath('path', 'start'):返回开始路径到path的相对路径的字符串。
os.path.relpath(''F:\\Datawhale\\POA', 'F:\\')
# 'Datawhale\\POA'
如未指定start,则当前工作目录为start。
os.path.relpath('F:\\Datawhale\\POA')
# '.'
os.path.dirname(path): 返回当前路径的目录名。
filePath = 'F:\Datawhale\POA\\result.csv'
os.path.dirname(filePath)
# 'F:\\Datawhale\\POA'
os.path.basename(path):返回当前路径的文件名。
os.path.basename(filePath)
# 'result.csv'
os.path.split():返回一个存放路径目录名dirname和文件名basename 两个字符串的元组。
os.path.split(filePath)
# ('F:\\Datawhale\\POA', 'result.csv')
或者可以同时调用os.path.dirname()和os.path.basename,将他们的返回值放在同一个元组中。
(os.path.dirname(filePath),os.path.basename(filePath))
# ('F:\\Datawhale\\POA', 'result.csv')
使用split方法,以os.path.sep(路径分隔符)分割路径为每个文件夹的字符串,存放在列表中。
filePath.split(os.path.sep)
# ['F:', 'Datawhale', 'POA', 'result.csv']
1.3.3 路径有效性检查
os.path.exists(path):如果path所指的文件或文件夹存在,返回True,否则False。
path = 'F:\\Datawhale\\POA'
os.path.exists(path)
# True
os.path.isfile(path):如果path存在,且是一个文件,返回True,否则False。
os.path.isfile(path)
# False
os.path.isdir(path):如果path存在,且是一个文件夹,返回True,否则False。
os.path.isdir(path)
# True
1.4 文件及文件夹操作
1.4.1 用os.makedirs()创建新文件夹
os.makedirs()可以创建所有必要的中间文件夹。
如果文件夹已存在,不会覆盖已有文件夹,会报错,若不存在,查看目录,已创建。
os.makedirs('F:\\Datawhale\\POA\\practice')
1.4.2 查看文件大小和文件夹内容
返回path中文件的字节数。
os.path.getsize(path)
# 0
返回包含path中的每个文件名字符串的列表。
os.lis