Pythonの自動osライブラリは、オペレーティングシステムと対話するライブラリです。一般的な操作には、ファイル/ディレクトリ操作、パス操作、環境変数操作、およびシステムコマンドの実行が含まれます。
ファイル/ディレクトリ操作
- 現在のディレクトリ(pwd)を取得します:os.getcwd()
- ディレクトリの変更(cd):os.chdir('/ usr / local /')
- ディレクトリ内のすべてのファイルを一覧表示します(ls):os.listdir('/ usr / local /')
- ディレクトリ(mkdir)を作成します:os.makedirs('/ usr / local / tmp')
- ディレクトリの削除(rmdir):os.removedirs('/ usr / local / tmp')#空のディレクトリのみを削除できます。再帰的な削除にはimportshutilを使用できます
;shutil.rmtree('/ usr / local / tmp') - ファイルの削除(rm):os.remove('/ usr / local / a.txt')
- ディレクトリとサブディレクトリを再帰的にトラバースします:os.walk()
例:/ usr / localディレクトリとサブディレクトリ内のすべてのファイルとディレクトリをトラバースし、各ファイルの完全なパス名をアセンブルします
import os
for root, dirs, files in os.walk("/usr/local", topdown=False):
for name in files:
print('文件:', os.path.join(root, name))
for name in dirs:
print('目录:', os.path.join(root, name))
パス操作
- 現在のPythonスクリプトファイル:ファイル
- ファイルのパスを取得します。os.path.basename(file)#現在のファイル名が含まれていません
- ファイルの絶対パスを取得します。os.path.abspath(file)#現在のファイル名が含まれます
- ディレクトリパスを取得します:os.path.dirname(file)
- パスとファイル名を分割します:os.path.split('/usr/local/a.txt')#[パス、ファイル名]のリストを取得します
- ファイル名と拡張子を分割します:os.path.splitext('a.txt')#get ['a'、'.txt']
- パスが存在するかどうかを確認します:os.path.exists('/ usr / local / a.txt')
- パスがファイルであるかどうかを確認します:os.path.isfile('/ usr / local / a.txt')
- パスがディレクトリであるかどうかを確認します。os.path.isdir('/ usr / local / a.txt')
- アセンブリパス:os.path.join('/ usr'、'local'、'a.txt')
例:プロジェクトのルートパスとレポートファイルのパスを取得する
プロジェクトの構造が次のようになっていると仮定します
project/
data'
reports/
report.html
testcases/
config.py
run.py
run.pyでプロジェクトのパスとreport.htmlのパスを取得します
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:660193417
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import os
base_dir = os.path.dirname(__file__) # __file__是run.py文件,os.path.dirname获取到其所在的目录project即项目根路径
report_file = os.path.join(base_dir, 'reports', 'report.html') # 使用系统路径分隔符('\')连接项目根目录base_dir和'reports'及'report.html'得到报告路径
print(report_file)
環境変数の操作
- 環境変数を取得します:os.environ.get('PATH')またはos.getenv('PATH')
- 環境変数を設定します:os.environ ['MYSQL_PWD'] = '123456'
システムコマンドを実行する
システムコマンドを実行します。os.system(“ jmeter -n -t /usr/local/demo.jmx”)#画面出力の情報を取得できません。実行中の画面情報を取得するには、サブプロセスを使用できます。