Python处理文件系统的10种方法( 二 )


import oscwd = os.getcwd()for dir_path, dir_names, file_names in os.walk(cwd): for f in file_names: print(f)以上是获取信息的操作 。下面让我们一起看一下更改工作目录或移动、复制、删除文件系统的命令 。
更改信息
os.chdir("/absolute/or/relative/path")此方法将当前工作路径更改为绝对路径或相对路径 。
如果随后要对文件系统进行其他更改,在试用该方法时留意处理任何异常 。否则,您可能正在删除不希望删除的目录或文件 。
os.path.join()os.path模块提供了许多用于路径名操作的有用方法 。您可以使用它查找有关目录名称,或者目录名称的部分信息 。该模块还可以用来检查文件或目录是否存在 。
os.path.join()提供将多个字符串完美连接在一起的文件路径,而且是在大多数操作系统上都可以工作的路径 。该模块文档的描述为,该命令可以“更加智能的连接一个或多个路径组件,返回值是路径或路径的任何成员路径的连接,每个非空路径后都有一个目录分隔符(os.sep),最后一个除外” 。
另外,如果使用的是Unix或macOS系统,os.path.join()会在每个字符串之间添加一个斜杠(" / ")来创建路径 。如果操作系统需要“”,那么join会自动使用反斜杠 。
os.path.join()还向其他开发人员提供了创建路径的明确信息 。强烈建议读者多使用这个命令,不要每次都手动添加斜杠 。
os.makedirs("dir1/dir2")os.makedirs()能够生成目录 。mkdir()方法也可以生成目录,但它不生成中间目录 。所以建议使用os.makedirs() 。
shutil.copy2("source_file", "destination")在Python中复制文件和目录的方法有很多,但建议使用此命令 。shutil.copy2()的优势在于,它尽可能地保留了源文件的元数据 。如果你希望对文件和努力的复制有更多了解,可以阅读这篇文章 。
 
移动文件
shutil.move("source_file", "destination")使用shutil.move()更改文件的位置 。它使用 copy2 作为后台参数默认值 。
os.remove("my_file_path")当需要删除文件时,可以使用os.remove()工具 。
shutil.rmtree("my_directory_path")shutil.rmtree()删除一个目录及其中的所有文件和目录 。
 
删除文件
使用删除函数的时候一定要多加小心!您可以使用print()将要删除的内容打印出来,在确定不会删除错误文件后,再用相应的删除文件函数替换print() 。在此向Al Sweigart致敬,感谢他在文章《Automate the Boring Stuff with Python》中进行的讨论 。
最后我们再回顾一下整个方法 。
10种文件系统方法概述
下面方法遵循这个模式:方法——描述——等效macOS Shell命令
获取信息

  • os.getcwd() ——以字符串形式获取当前工作目录路径—— pwd
  • os.listdir()?——以字符串列表的形式获取当前工作目录的内容——ls
  • os.walk("starting_directory_path")——返回函数,其中包含当前目录和所有子目录中的目录和文件的名称和路径信息——没有完全等价的shell命令,不过ls -R提供了子目录名称和子目录中的文件名称
改动信息
  • os.chdir("/absolute/or/relative/path")?——改变当前的工作路径——cd
  • os.path.join()——创建路径供后续使用——没有等效CLI
  • os.makedirs (“dir1 / dir2”)——创建目录——mkdir - p
  • shutil.copy2("source_file_path","destination_directory_path")——复制文件或目录——cp
  • shutil.move("source_file_path","destination_directory_path")——移动文件或目录——mv
  • os.remove (“my_file_path”)——删除文件——rm
  • shutil.rmtree (“my_directory_path”)——删除路径及其包含的所有文件和目录——rm –rf
以上介绍了关于Python与文件系统交互的一些基础知识 。希望大家在Ipython编辑器中多尝试这些命令,并向其他人解释这些方法,以更好的掌握和巩固知识 。
如果你想对相关内容有更多了解,可以看看免费的电子书,或者多用Python编编代码 。关于使用Python从文件中读写的相关操作,请查看open函数的官方文档 。
 

【Python处理文件系统的10种方法】


推荐阅读