10개의 Python Automated 자주 사용하는 작업

1. 폴더 훑어보기


코드는 아래와 같습니다. 여러분은 자신의 경로에 따라 수정할 수 있습니다

import os
    
for dirpath, dirnames, filenames in os.walk(r'C:\\Program Files (x86)'):
    print(f' {dirpath}') #   
    if dirnames:
        print(dirnames) #  [ ] 
    if filenames:
        print(filenames) #  [ ]
    print('-' * 10)
주어진 경로의 각 폴더 아래에 있는 조건에 맞는 모든 파일을 가져오고 그에 상응하는 일괄 처리를 해야 할 필요가 명확할 때 사용할 수 있다os.walk

2. 대상 경로가 파일인지 여부


때때로 우리는 디렉터리에 파일이 존재하는지 아닌지를 판단해야 한다. os 모듈을 사용할 수도 있다.
대상 경로path를 지정하면 코드 한 줄을 통해 파일인지 폴더 경로인지 판단할 수 있습니다

import os
 
path = 'xxx'
print(os.path.isfile(path))

3. 경로의 파일 이름 가져오기

os.path.basename 절대 경로에서 마지막 파일 이름을 직접 얻을 수 있습니다. 물론 전통적인 문자열 절단 방식도 가능합니다. 즉, path.split('\\')[-1]

import os
 
path = 'xxx'
print(os.path.basename)

4. 폴더 만들기


폴더를 만드는 코드는 매우 자주 사용됩니다. 종종 생성되는 새 파일은 새로운 폴더가 저장되기를 원하기 때문입니다. 코드는 다음과 같습니다.

import os
 
dirpath = 'xxx'
os.mkdir(dirpath)
그러나 만들고 싶은 폴더가 이미 존재하면 os.mkdir() 다시 실행하면 오류가 발생하고 코드가 종료됩니다.이 상황을 피하기 위해서는 폴더를 만들기 전에 폴더의 존재 여부를 판단할 수 있습니다.
사용된 코드는 os.path.exists 이며 경로가 존재하지 않는 경우(즉, os.path.exists 결과가 False 생성됩니다.

import os
 
dirpath = 'xxx'
if not os.path.exists(dirpath):
    os.mkdir(dirpath)

5. 데스크톱 경로 가져오기


데스크톱 경로를 가져오는 것도 자주 사용하는 작업으로 os.path.join(os.path.expanduser("~"), 'Desktop') 데스크톱의 절대 경로를 얻을 수 있습니다.
이렇게 하면 데이터를 데스크톱에 놓고 서로 다른 컴퓨터에서 코드를 호출하여 데이터를 처리할 수 있다는 장점이 있다.만약 한 컴퓨터에서 데스크톱 경로를 문자열에 고정한다면, 컴퓨터를 바꾸려면 반드시 데스크톱 경로를 수정해야 한다.코드는 다음과 같습니다.

import os
 
desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop')
print(desktop_path)
물론 위의 코드를 하나의 함수GetDesktopPath()로 포장하여 필요할 때 호출하는 것이 더욱 편리할 것이다

import os
 
def GetDesktopPath():
    return os.path.join(os.path.expanduser("~"), 'Desktop')

6. 파일 / 폴더 이름 바꾸기

os.rename() 방법이 필요합니다. 다음 코드 예시에서 파일과 폴더의 이름을 바꾸는 방법을 보여 줍니다.

import os
 
os.rename('practice.txt', 'practice_rename.txt')  #  
os.rename(' 1', ' 2') #  

7, 일괄 처리 파일 - 1


앞의 os.walk 외에 다른 os 모듈 아래 방법으로 지정된 경로의 전부 또는 조건에 맞는 파일을 얻을 수 있으며, 다음 두 코드를 사용할 수 있습니다. 첫 번째 방법은 os.scandir() 다음과 같습니다.

import os
 
path = 'xxx'
for file in os.scandir(path): 
    print(file.name, file.path)

8. 일괄 처리 파일 - 2


위 코드가 마지막으로 출력하는 것은 주어진 경로 아래 각 내용의 이름, 절대 경로 두 번째 방법os.listdir()을 사용하는 것이다. 이것은 os.scandir()보다 간단하고 경로가 아닌 출력 이름을 직접 호출할 수 있다.

import os 
 
path = 'xxx'
for file in os.listdir(path):
    print(file)

9. 파일/폴더 이동

shutil도 사무 자동화 장면에 자주 등장하는 모듈로 제가 자주 사용하는 것은 파일/폴더를 이동하는 것입니다.shutil.move 메서드를 사용해야 합니다. 다음 코드 예제에서는 파일과 폴더를 이동하는 방법을 보여 줍니다.

import shutil 
 
shutil.move(r'.\practice.txt', r'.\ 1/') 
shutil.move(r'.\practice.txt', r'.\ 1/new.txt')
위의 두 줄 코드의 차이를 알아차렸습니까?이전 줄은 대상 파일을 대상 폴더로 이동하는 것이고, 다음 줄은 대상 파일을 대상 폴더로 이동하는 동시에 이름을 바꿀 수 있다
즉, 만약 우리가 어떤 파일이나 일부 파일을 새로운 폴더로 이동하고 이름을 바꾸어야 한다면, os.rename 파일을 먼저 명명한 다음에 shutil.move 이동할 수 있는 지정된 폴더가 아니라, shutil.move 한 걸음 한 걸음

10, 일괄 처리 파일 - 3


마지막으로 소개하고자 하는 것은 glob 모듈이자 사무 자동화가 반드시 파악해야 하는 모듈로 일괄 처리 파일에도 사용할 수 있다.glob의 가장 중요한 기능은 같은 등급이나 각 하위 등급에서 조건에 맞는 파일(절대 경로)을 검색하여 일괄 처리에 적합한 코드를 얻는 것이다.
때때로 우리는 대량의 파일에 대해 같은 조작을 해야 한다. 한 파일에 대한 조작을 다 쓴 후에 몇 줄의 코드만 추가하면 모든 파일을 일괄 처리하는 작업을 완성할 수 있다.대략적인 코드 프레임워크는 다음과 같습니다.

import glob
    
for file in glob.glob('**/*', recursive=True): 
    print(file)
glob.glob()는 매우 중요한 방법으로 주어진 경로 아래 파일의 절대 경로를 얻을 수 있고 어댑터 검색을 받아 유연성을 크게 넓혔다. *는 임의의 문자 길이를 표시하고 **/*의 사용은 어댑터로 주어진 경로 아래의 모든 층을 가리키며 recursive 파라미터는 반복 검색을 허용한다.
이 10가지 Python 자동화에 관한 상용 조작, 즉 가져오면 바로 사용할 수 있는 문장을 소개합니다. 더 많은 Python 자동화 조작 내용은 우리의 이전 문장을 검색하거나 아래의 관련 문장을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기