파이썬 10 일차 OS 모듈에서 일반적으로 사용되는 파일 / 디렉터리 함수

OS 모듈에서 일반적으로 사용되는 파일 / 디렉터리 기능

우리가 알고있는 일반적으로 사용되는 운영 체제는 Windows, Mac OS, Linu, Unix 등입니다. 이러한 운영 체제의 기본 운영 원칙은 파일 시스템 액세스에 따라 다르므로 다른 시스템에 사용할 파일을 고려해야 할 수도 있습니다. 모듈 ...이 접근 방식은 프로그램의 운영 환경이 변경되면 그에 따라 많은 코드를 수정해야하기 때문에 매우 비우호적이고 번거 롭습니다.
OS (Operation System) 모듈을 사용하면 어떤 운영 체제에서 어떤 모듈이 사용되는지 신경 쓸 필요가 없습니다. OS 모듈은 올바른 모듈을 선택하고 호출하도록 도와줍니다.

  1. os.getcwd ()는 현재 작업 디렉토리를 반환하는 데 사용됩니다.
  2. os.chdir (path)는 현재 작업 디렉토리를 지정된 경로로 변경하는 데 사용됩니다.
import os
path = 'C:\\'
print("当前工作目录 : %s" % os.getcwd())
# 当前工作目录 : C:\Users\Administrator\PycharmProjects\untitled1
os.chdir(path)
print("目录修改成功 : %s" % os.getcwd())
# 目录修改成功 : C:\
  1. listdir (path = '.')은 경로로 지정된 폴더에 포함 된 파일 또는 폴더의 이름 목록을 반환합니다.
import os
dirs = os.listdir()
for item in dirs:
    print(item)
  1. os.mkdir (path)는 단일 레벨 디렉토리를 생성하고 디렉토리가 이미 존재하는 경우 예외를 발생시킵니다.
import os

if os.path.isdir(r'.\b') is False:
    os.mkdir(r'.\B')
    os.mkdir(r'.\B\A')
    
os.mkdir(r'.\C\A') # FileNotFoundError

위 내용을 이해하지 못함

  1. os.makedirs (path)는 다중 레벨 디렉토리를 재귀 적으로 생성하는 데 사용되며 디렉토리가 이미 존재하는 경우 예외가 발생합니다.
import os
os.makedirs(r'.\E\A')
  1. os.remove (path)는 지정된 경로에서 파일을 삭제하는 데 사용됩니다. 지정된 경로가 디렉토리이면 OSError가 발생합니다.
    [예] 먼저. \ E \ A \ text.txt 파일을 생성 한 후 삭제합니다.
import os
print("目录为: %s" % os.listdir(r'.\E\A'))
os.remove(r'.\E\A\test.txt')
print("目录为: %s" % os.listdir(r'.\E\A'))
  1. os.rmdir (path)는 단일 레벨 디렉토리를 삭제하는 데 사용됩니다. 이 폴더가 비어있는 경우에만, 그렇지 않으면 OSError가 발생합니다.
    [예] 먼저. \ E \ A 디렉토리를 생성 한 후 삭제합니다.
import os

print("目录为: %s" % os.listdir(r'.\E'))
os.rmdir(r'.\E\A')
print("目录为: %s" % os.listdir(r'.\E'))

문자 앞에 r을 추가하여 원시 문자열 상수라고도하는 원시 문자열을 나타냅니다.

  1. os.removedirs (path) 디렉토리를 재귀 적으로 삭제하고, 하위 디렉토리에서 상위 디렉토리로 계층별로 삭제를 시도하고, 디렉토리가 비어 있지 않으면 예외를 발생시킵니다.
    [예] 먼저. \ E \ A 디렉토리를 생성 한 후 삭제합니다.
import os

print("目录为: %s" % os.listdir(os.getcwd()))
os.removedirs(r'.\E\A') # 先删除A 然后删除E
print("目录为: %s" % os.listdir(os.getcwd()))
  1. os.rename (src, dst) 메서드는 src에서 dst로 파일 또는 디렉토리의 이름을 지정하는 데 사용됩니다 .dst가 기존 디렉토리 인 경우 OSError가 발생합니다.
    [예] test.txt 파일의 이름을 test2.txt로 변경합니다.
import os

print("目录为: %s" % os.listdir(os.getcwd()))
os.rename("test.txt", "test2.txt")
print("重命名成功。")
print("目录为: %s" % os.listdir(os.getcwd()))
  1. os.system (command) 시스템의 쉘 명령을 실행합니다 (문자열을 명령으로 변환)

[예제] 먼저 a.py 파일을 직접 생성 한 다음 쉘 명령으로 엽니 다.

import os
path = os.getcwd() + '\\a.py'
a = os.system(r'python %s' % path)
os.system('calc') # 打开计算器
  1. os.curdir은 현재 디렉토리 (.)를 나타냅니다.
  2. os.pardir은 상위 디렉토리 (…)를 나타냅니다.
  3. os.sep 출력 운영 체제 특정 경로 구분 기호 (\ under win, / under Linux)
  4. os.linesep 현재 플랫폼에서 사용하는 줄 종결 자 (\ r \ n win, \ n Linux)
  5. os.name은 현재 사용되는 운영 체제를 나타냅니다 ( 'mac', 'nt'포함).
import os
print(os.curdir) # .
print(os.pardir) # ..
print(os.sep) # \
print(os.linesep)
print(os.name) # nt
  1. os.path.basename (path) 디렉터리 경로를 제거하고 파일 이름을 별도로 반환합니다.
  2. os.path.dirname (path) 파일 이름을 제거하고 디렉터리 경로를 별도로 반환합니다.
  3. os.path.join (path1 [, path2 [,…]]) path1과 path2의 일부를 경로 이름으로 결합
  4. os.path.split (path)는 파일 이름과 경로를 분할하고 (f_path, f_name)의 튜플을 반환합니다. 디렉토리가 완전히 사용되면 마지막 디렉토리를 파일 이름으로 분리하고 파일 또는 디렉토리가 존재하는지 여부를 판별하지 않습니다.
  5. os.path.splitext (path)는 파일 이름과 확장자를 분리하고 (f_path, f_name) 튜플을 반환합니다.
import os
# 返回文件名
print(os.path.basename(r'C:\test\lsgo.txt')) # lsgo.txt
# 返回目录路径
print(os.path.dirname(r'C:\test\lsgo.txt')) # C:\test
# 将目录和文件名合成一个路径
print(os.path.join('C:\\', 'test', 'lsgo.txt')) # C:\test\lsgo.txt
# 分割文件名与路径
print(os.path.split(r'C:\test\lsgo.txt')) # ('C:\\test', 'lsgo.txt')
# 分离文件名与扩展名
print(os.path.splitext(r'C:\test\lsgo.txt')) # ('C:\\test\\lsgo', '.txt')
  1. os.path.getsize (file)는 지정된 파일의 크기를 바이트 단위로 반환합니다.
  2. os.path.getatime (file)은 지정된 파일의 가장 최근 액세스 시간을 반환합니다.
  3. os.path.getctime (file)은 지정된 파일의 생성 시간을 반환합니다.
  4. os.path.getmtime (file)은 지정된 파일의 최신 수정 시간을 반환합니다.
  5. time 모듈의 gmtime () 또는 localtime () 함수로 변환 할 수있는 부동 소수점 초
import os
import time
file = r'.\lsgo.txt'
print(os.path.getsize(file)) # 30
print(os.path.getatime(file)) # 1565593737.347196
print(os.path.getctime(file)) # 1565593737.347196
print(os.path.getmtime(file)) # 1565593797.9298275
print(time.gmtime(os.path.getctime(file)))
# time.struct_time(tm_year=2019, tm_mon=8, tm_mday=12, tm_hour=7, tm_min=8, tm_sec=57, tm_wday=0,
tm_yday=224, tm_isdst=0)
print(time.localtime(os.path.getctime(file)))
# time.struct_time(tm_year=2019, tm_mon=8, tm_mday=12, tm_hour=15, tm_min=8, tm_sec=57, tm_wday=0,
tm_yday=224, tm_isdst=0)
  1. os.path.exists (path) 지정된 경로 (디렉토리 또는 파일)가 존재하는지 확인
  2. os.path.isabs (path) 지정된 경로가 절대 경로인지 확인
  3. os.path.isdir (path) 지정된 경로가 존재하고 디렉토리인지 확인
  4. os.path.isfile (path) 지정된 경로가 존재하고 파일인지 확인
  5. os.path.islink (path) 지정된 경로가 존재하고 심볼릭 링크인지 확인
  6. os.path.ismount (path) 지정된 경로가 존재하고 중단 지점인지 확인
  7. os.path.samefile (path1, path2) path1과 path2의 두 경로가 동일한 파일을 가리키는 지 확인합니다.
import os
print(os.path.ismount('D:\\')) # True
print(os.path.ismount('D:\\Test')) # False

자세히 보지 않았다

추천

출처blog.csdn.net/weixin_48760912/article/details/114744643