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)