7.4 文件级操作

7.4.1 os 与 os.path 模块

      os 模块除了提供使用操作系统功能和访问文件系统的简便方法外,还提供了大量文件级操作的方法。os.path 模块提供了大量用于路径判断、切片、连接以及文件夹遍历的方法。


281408DEF07C4634CDA092AF1A8775CB.jpg
281408DEF07C4634CDA092AF1A8775CB.jpg

      一些代码示例。

>>> import os
>>> import os.path
>>> os.path.exists('sample.txt')
False
>>> os.rename(r'D:\test3.txt', r'D:\test1.txt')  # os.rename 可以实现文件改名和移动
>>> os.path.exists(r'D:\test3.txt')
False
>>> os.path.exists(r'D:\test1.txt')
True
>>> path = r'D:\Python\test1.txt'
>>> os.path.dirname(path)
'D:\\Python'
>>> os.path.split(path)
('D:\\Python', 'test1.txt')
>>> os.path.splitdrive(path)
('D:', '\\Python\\test1.txt')
>>> os.path.splitext(path)
('D:\\Python\\test1', '.txt')

      下面代码列出当前目录所有扩展名为 py 的文件。

print([fname for fname in os.listdir(os.getcwd()) if os.path.isfile(fname) and fname.endswith('.py')])
['RegularExpression.py']

      下面代码用来将当前目录所有扩展名为 html 的文件重命名为扩展名我 htm 的文件。

>>> os.chdir(r'D:\Python')    # 更改工作目录
>>> file_list = [filename for filename in os.listdir(".") if filename.endswith('.html')]
>>> for filename in file_list:
    newname = filename[:-4] + 'htm'
    os.rename(filename, newname)
    print(filename + " 更名为 " + newname)

    
test.html 更名为 test.htm

7.4.2 shutil 模块

      shutil 模块提供了大量的方法支持文件和文件夹操作。
      下面的代码使用该模块复制文件。

>>> shutil.copyfile(r'D:\Python\test1.txt', r'D:\Python\test2.txt')
'D:\\Python\\test2.txt'

      下面的代码将 D:\Python\lab_py_0424 文件夹压缩至 D:\Python\lab_py.zip 文件。

>>> shutil.make_archive( r'D:\Python\lab_py', 'zip', r'D:\Python', 'lab_py_0424')
'D:\\Python\\lab_py.zip'

      下面的代码将刚压缩的文件解压至 D:\lab_py 文件夹。

>>> shutil.unpack_arcive(r'D:\Python\lab_py.zip', r'D:\lab_py')

      下面的代码删除刚刚解压的文件夹。

>>> shutil.rmtree(r'D:\lab_py')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容