기사 디렉터리
- 파일 처리
- 시스템 유형 가져오기
- 시스템 환경 가져오기
- 시스템 명령 실행
- 디렉토리 및 파일 작동
- 파일 및 고급 처리 디렉토리
-
- 파일 복사
- 파일 이동
- 압축된 파일 읽기 및 압축 파일 보관
- 파일 압축 해제
- 요약
(관련 무료 학습 권장 사항: python 비디오 튜토리얼)
os
모듈과 shutil
모듈은 Python이 파일/디렉터리를 처리하는 주요 방법입니다. os 모듈은 운영체제 관련 기능을 편리하게 사용할 수 있는 방법을 제공하며,shutil 모듈은 고급 파일/디렉토리 작업 도구입니다. os
模块和shutil
模块是Python处理文件/目录的主要方式。os模块提供了一种使用操作系统相关功能的便捷方式,shutil模块是一种高级的文件/目录操作工具。
文件的处理
os
模块提供了一些便捷功能来使用操作系统资源,比如读取资源目录下的文件、在命令行查看某路径下文件的所有内容等。
获取系统类型
对代码进行兼容性开发以适应不同操作系统时通过操作系统类型进行判断就可以轻松解决。
import osimport sysprint(os.name) # 返回nt代表Windows,posix代表Linuxprint(sys.platform) # 更详细信息
获取系统环境
对环境变量进行相关设置时,常常会调用模块environ
模块。os.environ
是以字典的形式返回系统环境变量,要获取具体的属性值,可以用索引,也可以用方法getenv()
:
import osprint(os.environ)print(os.environ['PATH'])print(os.getenv('PATH'))
执行系统命令
使用os模块system()
方法可以执行shell命令,正常执行会返回0。使用格式是os.system("bash command")
。
在非控制台编写时,system()
只会调用系统命令而不会执行,执行结果可通过popen()
函数返回file
파일 처리
시스템 유형 가져오기
os
모듈은 리소스 디렉터리의 파일 읽기, 명령줄에서 특정 경로에 있는 파일 보기 등 운영 체제 리소스를 사용하는 데 몇 가지 편리한 기능을 제공합니다. 모든 콘텐츠 등
🎜다른 운영체제에 적응하기 위한 호환성을 위한 코드를 개발할 때 운영체제 유형을 판단하면 쉽게 해결할 수 있습니다. 🎜
import os os.system('ping www.baidu.com')os.popen('ping www.baidu.com').read()🎜

environ
모듈이 호출되는 경우가 많습니다. os.environ
은 시스템 환경 변수를 사전 형식으로 반환합니다. 특정 속성 값을 얻으려면 인덱스나 getenv()
메서드를 사용할 수 있습니다. 🎜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)🎜🎜🎜🎜시스템 명령 실행🎜🎜🎜 🎜 os 모듈
system()
메서드를 사용하여 셸 명령을 실행하면 일반 실행은 0을 반환합니다. 사용 형식은 os.system("bash command")
입니다. 🎜🎜콘솔 없이 작성하는 경우 system()
은 시스템 명령을 실행하지 않고 호출만 합니다. 실행 결과는 popen()
을 통해 file function. /code> 객체를 읽어서 얻어옵니다. 🎜<pre class="brush:php;toolbar:false">import shutilimport os
shutil.unpack_archive('D:\PycharmProjects\Hello\shutil-test.zip','D:\testdir')print(os.listdir('D:\testdir'))</pre>🎜🎜🎜🎜🎜디렉토리 및 파일 작업🎜🎜🎜🎜Python 개발에서 가장 일반적인 기능 중 하나는 os 모듈을 사용하여 디렉터리와 파일을 작업하는 것입니다. 🎜<table><tbody>
<tr class="firstRow">
<td>Method</td>
<td>Explanation</td>
<td>Example</td>
</tr>
<tr>
<td>os.getcwd()</td>
<td>현재 디렉터리 경로 가져오기</td>
<td><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/ca0594a1c752a5b48b8629b6da5e57ee-3.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." ></td>
</tr>
<tr>
<td>os.chdir('대상 경로')</td> <td>현재 스크립트 테이블 변경 of Contents</td>
<td> <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/ca0594a1c752a5b48b8629b6da5e57ee-4.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." >
</td>
</tr>
<tr>
<td>os.listdir(path)</td>
<td>디렉토리의 모든 파일 나열</td>
<td><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/2257413c3eaab8458c7e398adb2e5185-5.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." ></td>
</tr>
<tr>
<td>os.mkdir(path)</td>
<td>단일 디렉토리 생성</td>
<td rowspan="4"><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/2257413c3eaab8458c7e398adb2e5185-6.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." ></td>
</tr> <tr>
<td>os .makedirs (경로)</td> <td>다중 레벨 디렉토리 생성</td>
</tr>
<tr>
<td>os.rmdir(경로)</td>
<td>빈 단일 레벨 디렉토리 제거</td>
</tr>
<tr>
<td>os.removedirs(경로)</td>
<td>다중 레벨 디렉토리 삭제</td>
</tr>
<tr> <td>os.rename("파일 또는 디렉터리 이름","대상 이름")</td>
<td>디렉토리 또는 파일 이름 바꾸기</td>
<td><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/2257413c3eaab8458c7e398adb2e5185-7.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." ></td>
</tr>
<tr>
<td>os.path.abspath()</td>
<td>절대 경로 가져오기</td>
<td><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/727edec0e2b593619c71184cbdb07269-8.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." ></td>
</tr>
<tr> <td>os.path.split(path)</td> <td>경로를 (폴더, 파일 이름)으로 분해<br>경로 문자열의 마지막 문자가 이면 폴더 부분에만 값이 있습니다. <br>경로 문자열에 값이 없으면; , 파일 이름 부분에만 값이 있습니다. <br>경로에 문자열이 있고 더 이상 마지막 부분이 아닌 경우 폴더 및 파일 이름에 값이 있습니다. + os.path.basename(경로)</td>
<td rowspan="2">path에서 파일 이름 가져오기<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/727edec0e2b593619c71184cbdb07269-9.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." >
</td>
</tr>
<tr>os.path.exists(경로)<td></td>파일 또는 폴더가 존재하는지 확인<td></td>
</tr>
<tr>
<td></td>
<td>os.path.isfile (경로)</td>
<td rowspan="2">경로가 파일인지 확인<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/878969ec0f4864a696866bfa59dc25f3-10.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." >
</td>
</tr>
<tr>
<td></td>
<td>os.path.isdir(경로)</td>
</tr>경로가 디렉터리인지 확인<tr>
<td></td>
<td></td>
<td>
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/563162abbfc09ebe37d23aa454253a43-11.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." >os.path.getsize(path) )</td>
</tr> 파일 또는 폴더 크기 가져오기<tr>
<td></td>
<td></td>
<td>
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/563162abbfc09ebe37d23aa454253a43-12.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." >os.path.getctime(경로)</td>
</tr>파일 또는 폴더 생성 시간 가져오기<tr>
<td></td>
<td></td>
<td>
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/fbf7d5ceb7c9f1feb73a54fbf8c7b2d6-13.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." >os.path.getatime(경로)</td>
</tr>파일 가져오기 또는 폴더 마지막 액세스 시간<tr>
<td></td>
<td></td>
<td>
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/fbf7d5ceb7c9f1feb73a54fbf8c7b2d6-14.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." >os.path.getmtime(path)</td>
</tr>파일 또는 폴더의 마지막 수정 시간 가져오기<tr>
<td></td>
<td></td>
<td>
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/a19536f27a7436b52dda4c97d65df01a-15.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." >os.sep()</td>
</tr>경로 구분 기호<tr>
<td> </td> <td></td>
<td>
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/a19536f27a7436b52dda4c97d65df01a-16.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." >os.extsep()</td>
</tr>파일 이름과 접미사 사이의 구분 기호<tr>
<td></td>
<td>os.pathsep()</td>
<td>경로 구분 기호<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/962c64a0ed19037ca00e3898af49dd9f-17.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." >
</td>
</tr>
<tr>os.linesep()<td></td>새 줄 기호<td></td> <td rowspan="4"> <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/052/962c64a0ed19037ca00e3898af49dd9f-18.png?x-oss-process=image/resize,p_40" class="lazy" alt="Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다." ><blockquote><p>(<span style="max-width:90%">插播反爬信息</span> )博主CSDN地址:https://wzlodq.blog.csdn.net/</p></blockquote>
<p><strong>文件和目录高级处理</strong></p>
<blockquote><p>相比<code>os
模块,shutil
模块用于文件和目录的高级处理,提供了支持文件赋值、移动、删除、压缩和解压等功能。
复制文件
shutil
模块的主要作用是赋值文件,大概有以下七种实现:
shutil.copyfileobj(file1,file2)
覆盖复制
将file1的内容覆盖file2,file1、file2表示打开的文件对象。shutil.copyfile(file1,file2)
覆盖复制
也是覆盖,但是无须打开文件,直接用文件名进行覆盖(其源码还是调用的copyfileobj)。shutil.copymode(file1,file2)
权限复制
仅复制文件权限,不更改文件内容、组和用户,无返回对象。shutil.copystart(file1,file2)
状态复制
复制文件的所有状态信息,包括权限、组、用户和时间等,无返回对象。shutil.copy(file1,file2)
内容和权限复制
复制文件的内容和权限,相当于先执行了copyfile再执行了copysmode。shutil.copy2(file1,file2)
内容和权限复制
复制文件的内容及所有状态信息,相当于先执行了copyfile再执行了copystart。shutil.copytree()
递归复制
递归地复制文件内容及状态信息
移动文件
使用函数shutil.move()
函数可以递归地移动文件或重命名,并返回目标,若目标是现有目录则src再当前目录移动;若目标已经存在且不是目录,则可能会被覆盖。
读取压缩及归档压缩文件
使用函数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)
解压文件
使用函数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'))
小结
需要注意的是不同的操作系统中,路径分隔符不一样,在文件处理时需要考虑。也可以使用os.sep()
来替代文件分隔符,因为操作系统而造成的程序异常。此外处理文件时往往需要注意文件权限,还有注意文件和文件夹的区别,使用递归等。
Python系列博客持续更新中
大量免费学习推荐,敬请访问python教程(视频)
위 내용은 Python은 os 모듈과 Shutil 모듈을 자세히 설명합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Python의 유연성은 다중 파리가 지원 및 동적 유형 시스템에 반영되며, 사용 편의성은 간단한 구문 및 풍부한 표준 라이브러리에서 나옵니다. 유연성 : 객체 지향, 기능 및 절차 프로그래밍을 지원하며 동적 유형 시스템은 개발 효율성을 향상시킵니다. 2. 사용 편의성 : 문법은 자연 언어에 가깝고 표준 라이브러리는 광범위한 기능을 다루며 개발 프로세스를 단순화합니다.

Python은 초보자부터 고급 개발자에 이르기까지 모든 요구에 적합한 단순성과 힘에 호의적입니다. 다목적 성은 다음과 같이 반영됩니다. 1) 배우고 사용하기 쉽고 간단한 구문; 2) Numpy, Pandas 등과 같은 풍부한 라이브러리 및 프레임 워크; 3) 다양한 운영 체제에서 실행할 수있는 크로스 플랫폼 지원; 4) 작업 효율성을 향상시키기위한 스크립팅 및 자동화 작업에 적합합니다.

예, 하루에 2 시간 후에 파이썬을 배우십시오. 1. 합리적인 학습 계획 개발, 2. 올바른 학습 자원을 선택하십시오. 3. 실습을 통해 학습 된 지식을 통합하십시오. 이 단계는 짧은 시간 안에 Python을 마스터하는 데 도움이 될 수 있습니다.

Python은 빠른 개발 및 데이터 처리에 적합한 반면 C는 고성능 및 기본 제어에 적합합니다. 1) Python은 간결한 구문과 함께 사용하기 쉽고 데이터 과학 및 웹 개발에 적합합니다. 2) C는 고성능과 정확한 제어를 가지고 있으며 게임 및 시스템 프로그래밍에 종종 사용됩니다.

Python을 배우는 데 필요한 시간은 개인마다 다릅니다. 주로 이전 프로그래밍 경험, 학습 동기 부여, 학습 리소스 및 방법 및 학습 리듬의 영향을받습니다. 실질적인 학습 목표를 설정하고 실용적인 프로젝트를 통해 최선을 다하십시오.

파이썬은 자동화, 스크립팅 및 작업 관리가 탁월합니다. 1) 자동화 : 파일 백업은 OS 및 Shutil과 같은 표준 라이브러리를 통해 실현됩니다. 2) 스크립트 쓰기 : PSUTIL 라이브러리를 사용하여 시스템 리소스를 모니터링합니다. 3) 작업 관리 : 일정 라이브러리를 사용하여 작업을 예약하십시오. Python의 사용 편의성과 풍부한 라이브러리 지원으로 인해 이러한 영역에서 선호하는 도구가됩니다.

제한된 시간에 Python 학습 효율을 극대화하려면 Python의 DateTime, Time 및 Schedule 모듈을 사용할 수 있습니다. 1. DateTime 모듈은 학습 시간을 기록하고 계획하는 데 사용됩니다. 2. 시간 모듈은 학습과 휴식 시간을 설정하는 데 도움이됩니다. 3. 일정 모듈은 주간 학습 작업을 자동으로 배열합니다.

Python은 게임 및 GUI 개발에서 탁월합니다. 1) 게임 개발은 Pygame을 사용하여 드로잉, 오디오 및 기타 기능을 제공하며 2D 게임을 만드는 데 적합합니다. 2) GUI 개발은 Tkinter 또는 PYQT를 선택할 수 있습니다. Tkinter는 간단하고 사용하기 쉽고 PYQT는 풍부한 기능을 가지고 있으며 전문 개발에 적합합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
