ホームページ >バックエンド開発 >Python チュートリアル >Pythonでosモジュールとshutilモジュールを詳しく解説

Pythonでosモジュールとshutilモジュールを詳しく解説

coldplay.xixi
coldplay.xixi転載
2021-03-03 11:01:463098ブラウズ

Pythonでosモジュールとshutilモジュールを詳しく解説

#記事ディレクトリ

    ファイル処理
    • システム タイプの取得
    • システム環境の取得
    • システムコマンドの実行
    • 操作ディレクトリおよびファイル
  • ファイルおよびディレクトリの高度な処理
  • #ファイルのコピー
    • ファイルの移動
    • 圧縮ファイルの読み取りとアーカイブ
    • ファイルの解凍
    概要
  • (関連する無料学習の推奨事項:
python ビデオ チュートリアル

)

os

モジュールと shutil モジュールは Python 処理ファイルです/ ディレクトリのプライマリ モード。 os モジュールはオペレーティング システム関連の機能を使用するための便利な方法を提供し、shutil モジュールは高度なファイル/ディレクトリ操作ツールです。

ファイル処理

os

このモジュールは、リソース ディレクトリ内のファイルの読み取りなど、オペレーティング システムのリソースを使用するための便利な機能を提供します。ファイル、コマンド ラインなどの特定のパスにあるファイルのすべての内容を表示します。

システム タイプを取得する

さまざまなオペレーティング システムに適応するコードの互換性を開発する場合、オペレーティング システムのタイプを判断することで簡単に解決できます。 。
import osimport sysprint(os.name)  # 返回nt代表Windows,posix代表Linuxprint(sys.platform)  # 更详细信息

Pythonでosモジュールとshutilモジュールを詳しく解説

システム環境の取得

環境変数を設定する場合、モジュール
environ は # と呼ばれることがよくあります。 ##モジュール。

os.environ は、システム環境変数を辞書形式で返します。特定の属性値を取得するには、インデックスまたはメソッド getenv():

import osprint(os.environ)print(os.environ['PATH'])print(os.getenv('PATH'))
## を使用できます。

#システム コマンドの実行Pythonでosモジュールとshutilモジュールを詳しく解説

OS モジュール system()

メソッドを使用してシェル コマンドを実行します。通常の実行では、 0を返します。使用形式は
os.system("bash コマンド")

です。 非コンソール モードで記述する場合、system() はシステム コマンドを呼び出すだけで実行はしません。実行結果は

popen()## を通じて返されます。 # function

file オブジェクトが読み取られて取得されます。

import os
os.system('ping www.baidu.com')os.popen('ping www.baidu.com').read()
操作ディレクトリとファイル

Pythonでosモジュールとshutilモジュールを詳しく解説

OS モジュールを使用して実行する場合の Python 開発の最も一般的な機能の 1 つディレクトリとファイルを操作します。

os.chdir('target path')現在のスクリプト ディレクトリを変更しますos.listdir(path)ディレクトリ内のすべてのファイルをリストしますos.mkdir(path)単一ディレクトリの作成##os.makedirs(path)os.rmdir(path)#os.removedirs( path)複数レベルのディレクトリを削除ディレクトリまたはファイルの名前を変更します絶対パスを取得しますパスを (フォルダー、ファイル名) に分解しますパス文字列の最後の文字の場合\ の場合、ファイルのみ フォルダー部分に値があります; パス文字列に \ がない場合、ファイル名部分のみに値があります; os.path.join(path1,path2) ## os.path.dirname(path)os.path.basename( path)パスのファイル名を取得##os.path.exists(path)##ファイルまたはフォルダが存在するかどうかを判定#os.path.isfile(path)os.path.isdir(path) os .path.getsize(path)##os.path.getctime(path)ファイルまたはフォルダーの作成時刻を取得するos.path.getatime(path)ファイルまたはフォルダーを最後に取得するアクセス時間ファイルまたはフォルダーの最終変更時刻を取得しますパス区切り文字 #os.extsep()os.linesep()改行記号
メソッド 説明
os.getcwd() 現在のディレクトリ パスを取得します Pythonでosモジュールとshutilモジュールを詳しく解説
Pythonでosモジュールとshutilモジュールを詳しく解説
Pythonでosモジュールとshutilモジュールを詳しく解説
Pythonでosモジュールとshutilモジュールを詳しく解説
複数レベルのディレクトリを作成します
単一レベルの空のディレクトリを削除します
##os.rename("ファイルまたはディレクトリ名", "ターゲット名")
##os.path.abspath()Pythonでosモジュールとshutilモジュールを詳しく解説
os.path.split(path)Pythonでosモジュールとshutilモジュールを詳しく解説
パス文字列に \ が含まれており、フォルダー部分が値を持ちません。最後に、フォルダー名とファイル名にはすべて値が含まれます。


#パスの結合Pythonでosモジュールとshutilモジュールを詳しく解説
パスのフォルダー部分を取得
Pythonでosモジュールとshutilモジュールを詳しく解説
パスがファイルかどうかを判断します Pythonでosモジュールとshutilモジュールを詳しく解説
パスがディレクトリであるかどうかを判断する Pythonでosモジュールとshutilモジュールを詳しく解説
ファイルまたはフォルダーのサイズを取得 Pythonでosモジュールとshutilモジュールを詳しく解説
Pythonでosモジュールとshutilモジュールを詳しく解説
Pythonでosモジュールとshutilモジュールを詳しく解説os.path.getmtime(path)
#os.sep()Pythonでosモジュールとshutilモジュールを詳しく解説
Pythonでosモジュールとshutilモジュールを詳しく解説ファイル名とサフィックスの間の区切り文字
os.pathsep() パス区切り文字 Pythonでosモジュールとshutilモジュールを詳しく解説
##

插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/

文件和目录高级处理

相比os模块,shutil模块用于文件和目录的高级处理,提供了支持文件赋值、移动、删除、压缩和解压等功能。

复制文件


shutil模块的主要作用是赋值文件,大概有以下七种实现:

  1. shutil.copyfileobj(file1,file2)覆盖复制
    将file1的内容覆盖file2,file1、file2表示打开的文件对象。

  2. shutil.copyfile(file1,file2)覆盖复制
    也是覆盖,但是无须打开文件,直接用文件名进行覆盖(其源码还是调用的copyfileobj)。

  3. shutil.copymode(file1,file2)权限复制
    仅复制文件权限,不更改文件内容、组和用户,无返回对象。

  4. shutil.copystart(file1,file2)状态复制
    复制文件的所有状态信息,包括权限、组、用户和时间等,无返回对象。

  5. shutil.copy(file1,file2)内容和权限复制
    复制文件的内容和权限,相当于先执行了copyfile再执行了copysmode。

  6. shutil.copy2(file1,file2)内容和权限复制
    复制文件的内容及所有状态信息,相当于先执行了copyfile再执行了copystart。

  7. shutil.copytree()递归复制
    递归地复制文件内容及状态信息

移动文件


使用函数shutil.move()函数可以递归地移动文件或重命名,并返回目标,若目标是现有目录则src再当前目录移动;若目标已经存在且不是目录,则可能会被覆盖。
Pythonでosモジュールとshutilモジュールを詳しく解説
Pythonでosモジュールとshutilモジュールを詳しく解説

读取压缩及归档压缩文件


使用函数shutil.make_archive()创建归档文件,并返回归档后的名称。
语法如下:
shutil.make_archive(base_name,format[,root_dir[,base_dir[,verbose[,dry_run[,owner[,group[,logger]]]]]]])

  • base_name为需要创建的文件名,包括路径
  • format表示压缩格式,可选zip、tar或bztar等
  • root_dir为归档的目录
import shutil
path_1 = r'D:\PycharmProjects\Hello'path_2 = r'D:\PycharmProjects\Hello\shutil-test'new_path = shutil.make_archive(path_2,'zip',path_1)print(new_path)

Pythonでosモジュールとshutilモジュールを詳しく解説

解压文件


使用函数shutil.unpack_archive(filename[,extract_dir[,format]])分析拆档。

  • filename是归档的完整路径
  • extract_dir是解压归档的目标目录名称
  • format是解压文件的格式
import shutilimport os
shutil.unpack_archive('D:\PycharmProjects\Hello\shutil-test.zip','D:\\testdir')print(os.listdir('D:\\testdir'))

Pythonでosモジュールとshutilモジュールを詳しく解説

小结


需要注意的是不同的操作系统中,路径分隔符不一样,在文件处理时需要考虑。也可以使用os.sep()来替代文件分隔符,因为操作系统而造成的程序异常。此外处理文件时往往需要注意文件权限,还有注意文件和文件夹的区别,使用递归等。

Python系列博客持续更新中

大量免费学习推荐,敬请访问python教程(视频)

以上がPythonでosモジュールとshutilモジュールを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。