01 OS模块
About 3 min
文件处理
文件重命名
import os
os.rename('test.txt','test.py')
os.renames('test.txt','test.py')
区别
Info
os.rename()
和 os.renames()
都是用于文件重命名的函数,但它们在处理路径和错误处理方面有所不同。
os.rename(src, dst)
:- 用于将一个文件或目录从源路径
src
重命名为目标路径dst
。 src
是要重命名的文件或目录的原始路径。dst
是重命名后的目标路径。- 如果
src
和dst
指向不同的文件系统或驱动器,或者dst
已经存在,那么os.rename()
可能会引发OSError
异常。 - 如果重命名成功,
os.rename()
不会返回任何值,否则会引发异常。
- 用于将一个文件或目录从源路径
os.renames(old, new)
:- 用于递归地将一个文件或目录从源路径
old
重命名为目标路径new
。 old
是要重命名的文件或目录的原始路径。new
是重命名后的目标路径。- 如果
old
和new
指向不同的文件系统或驱动器,或者new
已经存在,os.renames()
将自动进行递归操作,先创建目标路径的上级目录,然后将old
移动到new
。 - 如果重命名成功,
os.renames()
不会返回任何值,否则会引发异常。
- 用于递归地将一个文件或目录从源路径
总的来说,os.rename()
用于单个文件或目录的简单重命名,而 os.renames()
用于递归重命名,并在需要时创建目标路径的上级目录。os.renames()
更适用于需要处理目录结构的情况。此外,os.renames()
还具有自动处理文件系统和目录存在的功能,因此更适用于复杂的重命名操作。
文件删除
os.remove('test.py')# 只能删除文件
os.rmdir('a/b/c') #只删除空目录 C
os.removedirs('a/b/c') #删除空目录 C B A
文件创建
os.mkdir('a/b/c') #只能创建一级目录
获取当前目录
os.getcwd()
更改当前目录
os.chdir('a/b/c')
获取目录列表
os.listdir('a/b/c')
复制文件
a_file = open('a.txt','r')
b_file = open('b.txt','w')
# f = a_file.read()
# b_file.write(f)
while True:
f = a_file.read(1024)
if len(f) == 0:
break
b_file.write(f)
a_file.close()
b_file.close()
路径处理 (os.path)
以下是 Python 的 os.path
模块的一些常用功能:
查看文件或目录的绝对路径:
os.path.abspath('a/b/c')
将路径分割为目录和文件名:
os.path.split('/path/to/some/file.txt')
只获取文件名:
os.path.basename('/path/to/some/file.txt')
只获取目录名:
os.path.dirname('/path/to/some/file.txt')
判断文件或目录是否存在:
os.path.exists('/path/to/some/file.txt')
判断是否为文件:
os.path.isfile('/path/to/some/file.txt')
判断是否为目录:
os.path.isdir('/path/to/some/directory')
获取文件的大小:
os.path.getsize('/path/to/some/file.txt')
连接目录与文件名或目录:
os.path.join('/path/to/some', 'file.txt')
返回文件的创建时间:
os.path.getctime('/path/to/some/file.txt')
返回文件的最后访问时间:
os.path.getatime('/path/to/some/file.txt')
返回文件的最后修改时间:
os.path.getmtime('/path/to/some/file.txt')
获取文件的扩展名:
os.path.splitext('/path/to/some/file.txt')
os.path.splitext('/path/to/some/file.txt')
这个函数会将文件的路径与其扩展名进行分割,返回一个包含两个字符串元素的元组。第一个元素是文件的路径(不含扩展名),第二个元素是文件的扩展名。
在你给出的例子中,os.path.splitext('/path/to/some/file.txt')
将返回一个元组:('/path/to/some/file', '.txt')
。第一个元素是不包含扩展名的文件路径,第二个元素是文件的扩展名。
获取文件名 (不含路径名和扩展名)
base_name = os.path.basename('/path/to/some/file.txt')
filename, file_extension = os.path.splitext(base_name)