Python基础语法入门(第二十天)——文件操作

一、基础内容

在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 os

path = 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 os

if 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 os

print(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()  # 关闭文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

quanmoupy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值