文件操作
文件权限
模式 | 操作 | 若文件不存在 | 是否覆盖 |
---|---|---|---|
rb | 二进制只读 | 报错 | - |
r+ | 可读可写 | 报错 | 是 |
w | 只写 | 创建 | 是 |
wb | 二进制只写 | 创建 | 是 |
w+ | 可读可写 | 创建 | 是 |
a | 只写 | 创建 | 否,追加写 |
a+ | 可读可写 | 创建 | 否,追加写 |
打开/创建 文件
open('path', 'mode')
打开一个文件如果需要指定路径,为防止路径中的 \
对 python
干扰,
最好在路径字符串前面加 r
,即保持字符原始值的意思。 或者将 \
改成 /
如:file_path = r'C:\Users\Administrator\Desktop\test.pdf'
需要注意的是:原始字符串的结尾不能加 \
,如果要加 \
,可以单独写 \
。先写一个原始字符串,再写一个包含转义符的字符串 \\
,python会自动把这两个字符串拼接起来。
例如: path4 = r'D:\now\project\demo''\\'
当使用 open
打开文件时, 如果我们在关闭文件前出现了程序报错,那么打开后的文件就没有进行关闭;为了避免这个问题,在 python
中提供了 with open
的方式来打开文件,并自动关闭。例:
with open('test.txt') as f:
文章来源:https://www.toymoban.com/news/detail-699763.html
读取文件
函数 | 说明 |
---|---|
file.read([size]) |
从文件读取指定的字节数,如果未给定或为负则读取所有。 |
file.readlines([sizeint]) |
读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。 |
file.readline([size]) |
读取整行,包括 “\n” 字符。 |
文件写入
函数 | 说明 |
---|---|
file.write(str) |
将字符串写入文件,返回的是写入的字符长度。 |
file.writelines(sequence) |
向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。 |
文件删除
函数 | 说明 |
---|---|
os.remove(filePath) |
path 是文件的路径,如果这个路径是一个文件夹,则会抛出 OSError 的错误,这种情况需要用 rmdir() 来删除 |
os.unlink(filePath) |
unlink 的功能和 remove 一样是删除一个文件,但是删除一个正在使用的文件会报错。 |
os.rmdir(dirPath) |
path 是文件夹路径,注意文件夹需要时空的才能被删除 |
os.removedirs(dirPath) |
递归地删除目录。如果子目录成功被删除,则将会成功删除父目录,子目录没成功删除,将抛异常。 |
文件夹操作
导入模块
import os
常用方法
函数 | 说明 |
---|---|
os.getcwd() |
获得程序运行的当前目录所在位置,一般是Python解释器所在路径 |
os.path.join(folder_path : str, file_name : str) |
拼接目录路径和文件名 |
os.path.exists('directory_name') |
判断文件夹或者是文件是否存在 |
os.mkdir("文件夹名称") |
新建一个文件夹,并且深度只能为 1
|
os.makedirs(r"目录1\目录2") |
创建多级目录 |
os.listdir(folder_path) |
列出目录下的所有文件和文件夹 |
os.path.isfile(file_path) |
判断是否为文件 |
os.rmdir(folder_path) |
删除文件夹,只能删除空文件夹 |
os.path.abspath(path) |
path 可以是一个文件名也可以是一个相对路径,该函数将返回它的绝对路径 |
os.path.dirname(path) |
去掉文件名,返回目录 |
os.path.abspath(relative_path) |
用来获取绝对路径的函数,它可以将相对路径转换为绝对路径 |
import os
os.getcwd()
os.path.join(folder_path : str, file_name : str)
os.path.exists('directory_name')
os.makedirs(r"目录1\目录2")
os.listdir(folder_path)
os.path.isfile(file_path)
删除非空文件夹
import shutil
shutil.rmtree("test_delete")
获取当前运行脚本所在路径
import sys
currentPath = sys.path[0]
print(currentPath)
将相对路径转成绝对路径
base_path = os.path.abspath(".") # 相当于获取当前所在绝对路径
import os
relative_path = './test.txt'
absolute_path = os.path.abspath(relative_path)
print(absolute_path)
输出结果为:文章来源地址https://www.toymoban.com/news/detail-699763.html
/Users/username/Documents/test.txt
到了这里,关于Python 文件和文件夹操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!