一、基础内容
在Python中,路径可以以不同的表现形式进行表示。以下是一些常用的路径表现形式:
1. 绝对路径:它是完整的路径,从根目录开始直到要操作的文件或文件夹。在Windows系统中,绝对路径以盘符开始,如`C:\Users\username\Documents\file.txt`;在Unix/Linux系统中,绝对路径从根目录`/`开始,如`/home/username/Documents/file.txt`。2. 相对路径:它是相对于当前工作目录的路径。相对路径不包含根目录,而是根据当前位置来定位。例如,当前工作目录是`/home/username/Documents`,要操作的文件在此目录下,则可以使用相对路径`file.txt`。3. 转义字符:在字符串中,路径中的特殊字符可以使用转义字符进行表示。例如,反斜杠`\`表示目录路径中的分隔符,在Windows中表示为`\`,在Unix/Linux中表示为`/`。4. 原始字符串:在字符串前加`r`作为前缀,可以创建原始字符串,其中的特殊字符不会被转义。原始字符串特别适用于Windows路径,因为Windows路径中包含许多反斜杠。例如,`r"C:\Users\username\Documents\file.txt"`。
在实际使用中,可以根据不同的操作系统和需求选择适合的路径表现形式。另外,Python提供了os.path
模块,其中包含了一些函数和方法用于处理路径,例如os.path.join()
用于连接路径组件、os.path.abspath()
用于获取绝对路径等。这些函数和方法可以帮助我们更方便地处理路径。
1.1 路径拼接
在不同的操作系统中,路径使用的斜杠并不是相同的,但是可以通过os.path.join()
来拼接出正确的路径,代码如下:
import os
print(os.path.join('C', 'Program Files', 'Common Files'))# 输出结果:
# C\Program Files\Common Files
1.2 路径名与文件名分离
os.path.dirname(path)
:返回path参数中最后一个斜杠之前的内容,即:返回目录名称
os.path.basename(path)
:返回path参数中最后一个斜杠之后的内容,即:返回基本名称
import os
path = r'C:\Windows\System32\666.exe'
print(os.path.dirname(path)) #获取目录名称
print(os.path.basename(path)) #获取基本名称# 输出结果:
# C:\Windows\System32
# 666.exe
os.path.split()
获取路径的目录名称和基本名称,返回由两个字符串组成的元组
import ospath = r'C:\Windows\System32\666.exe'
print(os.path.split(path))# 输出结果:
# ('C:\\Windows\\System32', '666.exe')
1.3 文件夹创建
使用os.makedirs
创建文件夹,并且会创建出中间所有必要的中间文件夹,来确保完整路径名存在。使用os.path.exists()
能够判断路径是否存在,存在则返回True
否则False
import osif not os.path.exists(r'D:\Program Files\666\777\888'): #证明不存在此路径os.makedirs(r'D:\Program Files\666\777\888')
1.4 路径有效性
在1.3中os.path.exists()
判断路径是否存在,除此之外还可以判断文件或者某个文件夹是否存在。
os.path.exists:如果路径存在(可以是文件、文件夹),就返回True
os.path.isfile:如果路径存在,并且是个文件,就返回True
os.path.isdir:如果路径存在,并且是个文件夹,就返回True
import osprint(os.path.exists(r'C:\Windows')) #检查路径是否存在
print(os.path.isfile(r'C:\Windows\System32\666.exe')) #检查文件是否存在
print(os.path.isdir(r'C:\Windows')) #检查文件夹是否存在# 输出结果:
# True
# True
# True
二、文件读写
在Python中,文件的读写操作通常使用open()
函数来实现。其可操作的文件对象包括(但不限于)以下几种类型,本节中的案例皆以文本类型txt
为例
1.文本文件(Text Files):这是最常见的文件类型,包含文本内容。使用open()函数以文本模式("r"或"w"等)打开文本文件。2.二进制文件(Binary Files):这些文件包含二进制数据,例如图片、视频、音频等。使用open()函数以二进制模式("rb"或"wb"等)打开二进制文件。3.CSV文件(Comma-Separated Values Files):这些文件以逗号或其他特定字符作为字段分隔符,存储表格数据。可以使用open()函数以文本模式打开CSV文件,并使用适当的处理方法(例如csv模块)读取或写入CSV文件。4.JSON文件(JavaScript Object Notation Files):这些文件以JSON格式存储数据,常用于数据交换。可以使用open()函数以文本模式打开JSON文件,并使用适当的处理方法(例如json模块)读取或写入JSON文件。5.XML文件(eXtensible Markup Language Files):这些文件以XML格式存储数据,常用于数据交换和配置文件。可以使用open()函数以文本模式打开XML文件,并使用适当的处理方法(例如xml.etree.ElementTree模块)读取或写入XML文件。除了上述类型的文件,open()函数还可以操作其他类型的文件,例如配置文件(INI、YAML等)、日志文件(Log files)、数据库文件等。
2.1 open()函数的基本使用
open()
函数是Python中用于打开文件的内置函数。它的基本使用形式如下:
file = open(file_path, mode)
其中,file_path
是文件的路径(可以是相对路径或绝对路径),mode
是打开文件的模式,默认情况下为r
只读模式。
2.2 常用的文件打开模式
"r":只读模式,用于读取文件内容。
"w":写入模式,用于写入文件内容。如果文件已存在,会清空文件内容;如果文件不存在,则会创建新文件。
"a":追加模式,用于向文件末尾追加内容。如果文件不存在,则会创建新文件。
"rb":二进制读取模式,用于读取二进制文件。
"wb":二进制写入模式,用于写入二进制文件。
"ab":二进制追加模式,用于向二进制文件末尾追加内容。
"rt":文本读取模式,用于读取文本文件(默认模式)。
"wt":文本写入模式,用于写入文本文件。
"at":文本追加模式,用于向文本文件末尾追加内容。
需要注意的是,在使用open()
函数打开文件后,应该始终在不需要文件时关闭文件,以释放资源。可以使用close()
方法来关闭文件。
除了使用open()
函数来打开文件,还可以使用with
语句来自动管理文件的打开和关闭,可以避免忘记关闭文件的问题:
file = open("path/to/file.txt", "r")
content = file.read()
file.close()
# 两种写法效果一样,下方写法不用再手动关闭文件,在with代码块结束时会自动关闭文件
with open("path/to/file.txt", "r") as file:content = file.read()print(content)
在with
语句块中,文件对象在with
块的范围内有效,并在with
块结束时自动关闭文件。这样可以确保文件在使用完毕后正确关闭。
2.3 常用的文件操作
1.打开文件:使用
open()
函数打开一个文件。可以指定文件的名称和打开模式(读取模式、写入模式等)。file = open("filename.txt", "r") # 以只读模式打开文件
2.读取文件内容:使用
read()
、readline()
或readlines()
方法读取文件的内容。content = file.read() # 读取整个文件 line = file.readline() # 读取一行内容 lines = file.readlines() # 读取所有行的内容并返回一个列表
3.写入文件:使用
write()
方法向文件中写入内容。写入的时候需要注意文件打开的模式是否是二进制读写模式,以此来判断是否需要将写入的内容进行二进制转换。file.write("Hello, World!") # 在文件中写入内容
4.关闭文件:使用
close()
方法关闭文件,释放资源。file.close() # 关闭文件