[Pythonの]アーセナルshutil、OS、zipファイル:3ピース編成ファイル

ここに画像を挿入説明


、shutilモジュール

1.コピーしてリネームファイルとフォルダ

【01】shutil.copy(ソース、デスティネーション)

フォルダの移動先パスに元のファイルパスをコピーし、先がファイル名であれば、それは新しいファイル名として複製されます。

import shutil

shutil.copy(r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹1\hello.txt',
	r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹2')
shutil.copy(r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹1\hello.txt',
	r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹2\你好.txt')    # 复制并改名

つまり、shutil.copyから()関数は、我々は達成することができ、単一のファイルのコピーや名前の変更操作を。

【02】shutil.copytree(ソース、デスティネーション)

shutil.copyは()、フォルダ全体をコピーしたフォルダ内のファイルやフォルダを含むことのできるファイルのコピー、およびshutil.copytree()です。

import shutil

#【01】文件和文件夹的复制与改名
shutil.copytree(r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹1', 
	r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹3')   # 实际相当于创建了一个新文件夹

-

2.移動、ファイルやフォルダは名前を変更します

【01】shutil.move(ソース、デスティネーション)

shutil.move()関数を使用することにより、我々は、名前が変更されたファイルやフォルダと移動を実現することができます。この機能を使用する場合は、次の点に注意してください。

  1. ファイルがフォルダ内に存在する場合、それは上書きされます。ソースドキュメントは、ファイル、フォルダA Bに移動され、すでにフォルダBを既存されたいですかどこにあります。
  2. あなたは、テープパスをしたいですか、ソースファイル、ファイルBは、ファイルAは、下のパスと名前を変更したBに移動されます
  3. ソースファイル、同じディレクトリをしたいですか、ファイルBは、ファイルは、ファイルB. A名前が変更され

ソースは、フォルダAの場合は、上記のルーチンに従うために置換することができ、原理は同じです。

import shutil

#【02】文件和文件夹的移动与改名
shutil.move(r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹3\hello.txt',
	r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹4')
shutil.move(r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹3\hello.txt',
	r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹4\你好.txt')
shutil.move(r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹3\hello.txt',
	r'E:\【05】编程设计\Python\Python自动化办公\测试\文件夹3\hello.txt')

-

3.永久に削除ファイルとフォルダ

osモジュールを使用して、我々は、ファイルや空のフォルダを削除達成することができます。しかし、shutilモジュールを使用することを、我々は永久に(不可逆的に)フォルダとそのすべての内容を削除することがあります。

  • os.unlink(パス)は、ファイルのパスを削除します(シングル)
  • os.rmdir(パス)フォルダのパスを削除します(空白)
  • shutil.rmtree(パス)フォルダなど、すべてのファイルとフォルダを含むフォルダのパスを削除します

ことに注意してください、shutil.rmtree()不可逆的に削除ファイルを永久に、ので、それらは非常に注意する必要があり使用されます。

もう削除方法がないこと?私たちが誤ってファイルを削除しない場合に回収することができる方法が必要ですか?

はい、それはsend2trashモジュールを削除するために使用されます。

-

4.安全モジュールsend2trashを削除します

send2trashサードパーティのモジュールは、それは削除して、非永続的、パソコンのゴミ箱にファイルやフォルダをお送りします従来のPythonの削除機能よりもはるかに安全です。

その後、我々は完全に削除するか、コンピュータのごみ箱にファイルやフォルダを復元するために選択することができます。

send2trash使用するには、我々は最初にインストールする必要があります。

プロンプトコマンドを開き、send2trashをインストールPIP入力します

import send2trash

#【04】用send2trash模块安全删除
baconFile = open('bacon.txt','a')       # 创建txt文件
baconFile.write('Bacon is not a vegatable')   # 文件中写入内容
baconFile.close()
send2trash.send2trash('bacon.txt')   # 用send2trash删除文件

ここに画像を挿入説明

二、os.walk()ディレクトリツリーをトラバースします

時々、私たちは、フォルダ内のフォルダのすべてのサブフォルダを含むフォルダ内のすべてのファイルを、名前を変更するためにこのようなフォルダとして、フォルダ全体を横断する必要があります。

今回は、複合サイクル操作はディレクトリツリーをトラバース実現することができるため、()関数をos.walk使用する必要があります。

ループの各反復でファイルパス文字列を渡しos.walk(パス)は、3つの値を返します。

  1. 現在のフォルダの文字列名
  2. 現在のフォルダのサブフォルダ文字列のリスト
  3. 現在のフォルダ・ファイル内の文字列のリスト

それは思い出し注目する価値がある、いわゆる現在のフォルダの手段そのループフォルダの現在の反復のために。

import shutil

for folderName, subfolders, filenames in os.walk(r'E:\【05】编程设计\Python\Python自动化办公\【09】组织文件\delicious'):
	print('当前文件夹:'+folderName) 
	print('包含子文件夹:', end='')
	for subfolder in subfolders:
		print(subfolder, end=' ') 

	print()

	print('包含文件:', end='')
	for filename in filenames:
		print(filename, end=' ')

	print('\n-------------------------------------------')

検索結果表示
ここに画像を挿入説明
ここに画像を挿入説明

三、zipファイルモジュール

ZIPファイルをお読みください。

ファイルとフォルダの圧縮袋のために、どのようにプロセスを動作させるには?あなたは、zipファイルモジュールを使用する必要があります。

ZIPファイルの内容を読み取るには、最初にZIPファイルオブジェクトを作成する必要があります。

import zipfile

#【01】读取ZIP文件
exampleZip = zipfile.ZipFile('example.zip')     # 创建ZIP对象
print(exampleZip.namelist())        # 返回ZIP中所有文件和文件夹的列表

spamInfo = exampleZip.getinfo('spam.txt')    # 获取ZIP的单个内容
print(spamInfo.file_size)               # 原文件大小
print(spamInfo.compress_size)     # 压缩后文件大小

c_ratio = round(spamInfo.file_size/spamInfo.compress_size, 2)  # 计算压缩率
print(c_ratio)

コードを実行し、結果を見て
ここに画像を挿入説明

メソッドとプロパティを要約:

  • ZIPオブジェクトを作成するためのzipfile.ZipFile()
  • 名前リストは、()すべてのファイルとフォルダの文字列をZIPファイルのリストを返します。
  • GETINFO()は、特定のファイルのオブジェクトを返す持つZipInfo
  • 元のファイルサイズのFILE_SIZE性質
  • 圧縮ファイル属性compress_sizeのサイズ
  • 近くには、()ZIPファイルを閉じ

-

ZIPファイルを解凍2.

約解凍ZIPファイルには2つの機能を持つことができます。

  • extractall()ZIPファイルから、すべてのファイルとフォルダを解凍
  • 抽出物を()指定されたファイルから単一のZIPファイルを解凍します
import zipfile, os

#【02】从ZIP文件中解压缩
exampleZip.extractall()               # 将所有文件和文件夹解压到当前工作目录中,括号中可指定文件夹名
exampleZip.extract('spam.txt', r'E:\【05】编程设计\Python\Python自动化办公') # 将指定文件解压到指定文件夹(文件夹不存在则创建)
exampleZip.close()

-

ZIPファイルを作成し、追加3

新しいZIPファイルを作成するには、「書き込みモード」または「追加モード」2番目のパラメータで渡されたオープンZIPファイルオブジェクトでなければなりません。

import zipfile, os
#【03】创建和添加到ZIP文件
newZip = zipfile.ZipFile('new.zip','w')     # 以"写模式"或者"添加模式"创建,这里'w'表示写模式
newZip.write('spam.txt', compress_type=zipfile.ZIP_DEFLATED)   # 第二参数为压缩类型参数,可以总是设置为该值

newZip.close()

ここに画像を挿入説明ここに画像を挿入説明

公開された35元の記事 ウォン称賛35 ビュー2739

おすすめ

転載: blog.csdn.net/nilvya/article/details/104353383