不可欠な基盤| 10の方法Pythonは、ファイルシステムを扱います

[REVIEW]いくつかのPythonプログラムを書くことで、私たちは多くの場合、ファイルシステムと対話する必要があります。この記事では、一緒に最新の情報を含む関連する10の一般的に使用されるコマンドを、入れて情報を変更し、ファイルを削除することで、ファイルシステムの内容やファイルを操作するために、より効率的に人々を助けるために、対応する端末のコマンドを提供します。
Pythonは、我々は興味深いアプリケーションの多くを達成することができ、ファイルシステムと対話を実現することができますが、ほとんどの人は、この相互作用を達成する方法がわかりません。この記事では、関連するR&D科学者と実装ガイドのためのデータを提供し、自動的にスクリプトを使ってファイルシステムのPythonプログラムと対話する10社の基本的なOSとshutilコマンドに焦点を当てています。

ファイルシステムと住宅の類似構造。毎回クリーンアップは、我々はすべての移動のように、このPythonのファイル操作の1つの別の部屋への部屋、および使用から文書の箱の多くを必要とします。

ファイルディレクトリは、物事の完全な箱のようなものですが、ファイルシステムでは、インストールされたシステムファイルに格納されています。

コンピュータのファイルストレージと同様に、我々はリード/ライトすることができ、ノートPCの箱に詰め、あなたはディレクトリに保存することができます。
このガイドでは、shutilモジュールのOSおよび関連する方法を説明します。これは、osモジュールは、主にオペレーティングシステムと対話するために使用され、shutilモジュールはファイルに対する操作の数が含まれています。通常の状況下で、我々は、ディレクトリを作成shutil動きを使用してファイルをコピーし、OSを使用しています。
Python標準ライブラリのアップデート:新しいpathlibライブラリー2019年2月16日
ファイルパスの処理を改善するために、Pythonの3.4バージョンでpathlib標準ライブラリモジュールを増やして、バージョン3.6には、非常に良いよりpathlib、の標準ライブラリの他のモジュールとの相互作用が増加します。代わりに、ファイルパスを解析において特定の利点を有することができる文字列、対象のpathlib経路。あなたはpathlibについての詳細をお知りになりたい場合は、提供入門実Pythonとpbpythonを読むことができます。pathlib非常に便利なものの、それは我々が探求しようとしている根本的な機能のいくつかを持っていません。したがって、OSやshutil方法の使用が依然として必要です。
より詳細な説明を行う前に、次の点に注意する必要があります。

2020年1月は、もはやパイソン2はサポートされません後にこのガイドは、のpython3に基づいています。
関連するコマンドを使用する前に、コードの先頭で、OSやshutilライブラリをインポートする必要があります。
私のサンプルコードはGitHubの上で見つけることができます。
独自のパラメータは、引用符で次のパラメータを置き換える使用してください。

次に、ファイルシステムの一本明細書に記載した方法によってコマンド一方の10種類は、各部分は、「方法:→記載MacOSのシェルコマンドに対応する」続くより良い理解を容易に導入モード、。
まず、情報へのアクセス(情報を見ます)

os.getcwd():パス文字列に→PWD現在の作業ディレクトリを取得します。
)(os.listdirを:文字列のリストの形でコンテンツ→現在の作業ディレクトリを取得LS
os.walk(「starting_directory_pathは」):発電機を返します。シェルコマンド→完全に同等ではないが、LS -Rコマンドは、ファイル名とサブディレクトリのサブディレクトリの名前を提供し、現在のディレクトリ情報のすべてのサブディレクトリのファイル名とパスを生成するステップを含む(発電機)

第二に、情報を変更する(変更物事)

os.chdir("/absolute/or/relative/path"):更改当前的工作路径→ cd
os.path.join():创建路径供后续使用→ 没有等效的命令
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

以上是对十个最常用、基础的文件系统方法的初步介绍,接下来我们再深入讲解一些重要的模块和使用方法。
查看信息
os.getcwd()
以字符串形式返回当前工作目录
os.listdir()
以字符串列表形式返回当前目录
os.walk("my_start_directory")
创建一个生成器,用于返回关于当前目录和子目录的信息。在起始指定的目录中有效。
os.walk() 遍历包含的每个目录后,都会返回下列项:
(1)当前目录路径(字符串类型)
(2)当前目录下的子目录名称(字符串列表类型)
(3)当前目录中的文件名称(字符串列表类型的)
使用带有for循环的os.walk()来遍历目录及其子目录的内容通常很有用。例如,下面的代码将打印当前工作目录的目录和子目录中的所有文件。
import os
cwd = 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编辑器中多尝试这些命令,并向其他人解释这些方法,以更好的掌握和巩固知识。
想要获取更多人工智能方面的资料
可以加V、、信:hcgx0904(备注“人工智能”)
点击《深度学习&计算机视觉精讲》,开始学习吧!

おすすめ

転載: blog.csdn.net/hcgx2018/article/details/93715720