Python 関連のコードに触れると、通常はヘッダー ファイルに os をインポートし、os を使用してプログラム内のいくつかのメソッドを呼び出し、ファイルまたはパスに対する操作を実行していることがわかりました。ここでは、私たちがよく目にする os モジュールの下のいくつかのメソッドの概要を示し、頻繁に使用される os モジュールの下のメソッドを接続する小さなケースを通して、学んだことを適用できるようにします。
主に使用されるものは以下のとおりです。
os.getcwd() #現在の .py ファイルが配置されているディレクトリ、つまり現在の .py ファイルが配置されている場所を取得します。
os.listdir(path) #path は、独自に定義されたディレクトリ パスです。このステートメントは文字列リストを返します。リスト内の要素は、ディレクトリ パス パスの下のファイルの名前、またはディレクトリ パスの下のディレクトリの名前です。パスの下に別のディレクトリがネストされている可能性があるためです。
os.path.join(path1, path2) #2 つのパスを接続するために使用され、接続後のパスは path1/path2 に相当します。
os.path.abspath(filenmae) #filename はファイルの名前です。このステートメントは、ファイル filename の絶対パスを取得するために使用されます。絶対パスには先頭と末尾があります。このパスは一意です。
os.path.isdir(path)、os.path.isfile(path)、os.path.exists(path) #path は、特定のファイルまたはディレクトリに対応するパスです。3 つのステートメントの意味は次のとおりです。カレントパスがディレクトリであるか、カレントパスがファイルであるか、カレントパスが存在するかを判断します。
上記の関数については、コードを使用して以下をテストします。コメントは、コードにそれらを記述したことを示しています。
import os
# 先用os.getcwd 获得我当前文件所处的路径
print('os.getcwd()==', os.getcwd())
# os.getcwd()== /home/liubs/ottertune/test 这是打印输出
# 再用os.listdir 获得当前文件所在目录下的所有文件,也就是同级别的所有文件,以字符串列表的形
# 注意,我当前文件所在目录下不止一个文件,还有其他的文件。
path1 = '/home/liubs/ottertune/test'
print('os.listdir(path=path1)==', os.listdir(path=pa
# os.listdir(path=path1)== ['test01_changeconfig.py'
# operate_system_os.py是我现在运行的文件。
# os.path.join用于将两个路径进行相加,并且在两个字符串之间加上‘/’
path2 = os.path.join(path1, os.listdir(path1)[1])
print('os.path.join==', path2)
# path1是我定义的一个路径,然后获得该路径下的一个文件名,将其进行连接
# 输出结果如下:os.path.join== /home/liubs/ottertune/test/t
# os.path.abspath获取文件的绝对路径,包括文件名
path3 = os.path.abspath('operate_system_os.py')
print('os.path.abspath==', path3)
# os.path.abspath== /home/liubs/ottertune/test/opera
# os.path.exists,os.path.isdir,os.path.isfile,分别为路径是
print(os.path.exists('test04_knobsselect.py'))
# 这里打印出来的为:True 因为test04_knobsselect.py这个文件确实存在。
印刷結果は次のとおりです。
小さなケースの実現:
質問: 現在のディレクトリにある test キーワードを含むファイルの絶対パス情報を出力します。
# 1、获得当前所在的文件目录路径
path_str = os.getcwd()
# 打印出当前文件目录路径下所有的文件名或目录名
path_list = os.listdir(path_str)
# 在当前目录下新建一个目录,名字为 'this_test00'
new_file_path = 'this_test00'
# 定义关键字段,即要查找出的是所有带有关键字段的文件的路径
sub_str = 'test'
# 查看新建的目录名是否已经在当前目录下的列表中存在
# 如果不存在,则在当前目录下新建一个目录
if new_file_path not in path_list:
os.mkdir(new_file_path)
# 遍历当前目录下的所有文件名和目录名
for i in path_list:
# 如果是一个目录名,则删除该目录
if os.path.isdir(i):
os.rmdir(i)
# 如果是一个文件名,则查看文件名中是否包含关键字段,这里用到find方法,如果不包含则返回值为-1,不等于-1则是包含关键字段
if i.find(sub_str) != -1:
# 将当前文件所在的目录和包含关键字的文件名进行连接并进行打印。
path = os.path.join(path_str, i)
print(path)
結果は次のとおりです。