반응형
반응형

[python] 폴더 안의 파일들 이름의 공백 또는 - 를 언더바로 변경하는 프로그램

 

공백( ) 또는 하이픈(-)을 언더바(_)로 변경하는 프로그램을 작성할 수 있습니다. 이 프로그램은 지정된 폴더 내 모든 파일의 이름을 확인하고, 공백 또는 하이픈이 포함된 경우 이를 언더바로 대체하여 이름을 변경합니다.

 

# 파이썬 컴파일 경로가 달라서 현재 폴더의 이미지를 호출하지 못할때 작업디렉토리를 변경한다. 
import os
from pathlib import Path
# src 상위 폴더를 실행폴더로 지정하려고 한다.
###real_path = Path(__file__).parent.parent
real_path = Path(__file__).parent
print(real_path)
#작업 디렉토리 변경
os.chdir(real_path) 


def replace_spaces_in_filenames(folder_path):
    # 폴더 내 모든 파일을 반복
    for filename in os.listdir(folder_path):
        # 파일의 전체 경로 생성
        old_file_path = os.path.join(folder_path, filename)

        # 파일 이름에 공백이 있는지, -도 _로 변경 확인
        if ' ' in filename or  '-' in filename:
            # 공백을 언더바로 대체
            new_filename = filename.replace(' ', '_').replace('-', '_')
            new_file_path = os.path.join(folder_path, new_filename)

            
            # 파일이 존재할경우 덮어쓸지, 빠져나갈지 
            if os.path.exists(new_file_path):
                overwrite = input(f"'{new_file_path}' already exists. Overwrite? (y/n): ")
                if overwrite.lower() == 'y':
                    os.remove(new_file_path)
                else:
                    print("Operation canceled.")
                    exit()
            # 파일 이름 변경
            os.rename(old_file_path, new_file_path)
            
            
            print(f"Renamed: '{filename}' -> '{new_filename}'")
        else:
            print(f"No change: '{filename}'")

# 사용 예시
folder_path = 'path_to_your_folder'  # 여기에 폴더 경로를 입력하세요 
replace_spaces_in_filenames(folder_path)

프로그램 설명

  1. os 모듈: 파일 경로와 관련된 작업을 수행하기 위해 os 모듈을 사용합니다.
  2. 폴더 내 파일 탐색:
    • os.listdir(folder_path)를 사용하여 지정된 폴더 내의 모든 파일 및 하위 디렉토리 이름을 가져옵니다.
    • for filename in os.listdir(folder_path)를 사용하여 각 파일을 순회합니다.
  3. 공백과 하이픈을 언더바로 변경:
    • if ' ' in filename or '-' in filename: 조건문을 사용하여 파일 이름에 공백 또는 하이픈이 포함되어 있는지 확인합니다.
    • filename.replace(' ', '_').replace('-', '_')를 사용하여 공백과 하이픈을 언더바로 대체합니다.
  4. 파일 이름 변경:
    • os.rename(old_file_path, new_file_path)를 사용하여 파일 이름을 변경합니다.
  5. 사용 방법:
    • folder_path에 파일 이름을 변경할 폴더의 경로를 입력합니다.
    • 프로그램을 실행하면 폴더 내 모든 파일의 이름에서 공백과 하이픈이 언더바로 변경됩니다.

사용 예시

폴더 경로를 지정하여 프로그램을 실행하면, 그 폴더 안의 모든 파일 이름에서 공백 또는 하이픈이 언더바로 변경됩니다. 예를 들어, path_to_your_folder가 C:/Users/YourName/Documents/TestFolder인 경우:

반응형
반응형

비교를 하면 할수록
기분만 나빠진다. 하지만 사실 우리는
다른 사람들 삶에서 무슨 일이 일어나는지 잘 모른다.
계속 남과 비교만 하면 본인의 꿈, 자율권, 행복에서
점점 멀어지게 된다. 남과 자신을 비교하다 보면
다른 사람 일에 끼어들게 되고 남의 일에
참견하다 보면 정작 중요한 자기 일은
나 몰라라 하게 된다. 부디 자기
일에만 신경 쓰면서
본인에게 집중하자.


- 트레이시 리트의 《당신은 꽤 괜찮은 사람입니다》 중에서 -


* 누구나 자신만의 향기가 있습니다.
심지어 일란성 쌍둥이도 취문(臭紋)이 다릅니다.
각자는 모두 특별하며 비교 대상이 결코 아닙니다.
그는 그의 우주에서, 나는 나의 우주에서 살아갈
뿐입니다. 그러기에 남과 비교하며 살 필요가
없습니다. 그 시간에 자신을 잘 가꾸어가면
됩니다. 어제의 나와 비교하며
더 정진하는 것입니다.

반응형

'아침편지' 카테고리의 다른 글

당신이 행복하면 나도 행복하다  (0) 2024.08.26
솔밭  (0) 2024.08.26
참나 리더십  (0) 2024.08.22
노년의 '회복탄력성'  (0) 2024.08.21
노화를 물리치려는 폭발적 노력  (0) 2024.08.20
반응형

1. 빈 배열 대입


let array = [1,2,3,4,5];

array = []

console.log(array)  // []

 

단순하게 빈 배열 대입하여 배열을 비울 수 있습니다.

 

 

 

2. 배열의 길이 수정


let array = [1,2,3,4,5]

array.length = 0

console.log(array)  // []


배열의 길이를 0으로 수정하면 배열을 비울 수 있습니다.

※ 배열의 길이를 수정하면 해당 길이만큼 배열의 크기가 바꿔지며

    현재 길이보다 크게 변경 할 경우 해당 자리에 빈 값이 들어가며 sparse Array가 됩니다.

 

 

 

3. 배열 자르기


let array = [1,2,3,4,5]

array.splice(0)

console.log(array)  // []

 

splice 함수를 사용하면 해당 배열에서 설정한 크기만큼 잘라 반환합니다.
따라서 splice(0)을 사용하면 처음부터 끝까지 자르기 때문에 array가 비어지는 효과가 나타나게 됩니다.

 

 

 

4. 배열의 요소 하나하나 직접 반환


let array = [1,2,3,4,5]

while(array.length > 0){
    array.shift() 또는 array.pop()
}

배열의 shift() 또는 pop() 함수를 이용하여 요소들을 하나씩 직접 반환하는 방법입니다.

※ shift() - FIFO 먼저 들어온 요소 반환, pop() - LIFO 마지막에 들어온 요소 반환

반응형
반응형

자신의
참나를 알게 되면,
자기 주변 사람들 속에 어느 정도의
참나가 존재할 때와 그렇지 않을 때를
감지할 수 있다. 참나 리더십이 있는 사람은
쉽게 알아볼 수 있다. "불이 켜지면 누가 집에
있는 것이다"라는 말처럼. 사람들은 그런 사람을
열려 있고 자신감 넘치며 수용적인 사람,
즉 존재감이 있는 사람이라고
묘사한다.


- 리처드 C. 슈워츠의 《내면 혁명으로의 초대 IFS》 중에서 -


* 참나가 되어 보면,
모두가 하나임을 알게 됩니다.
내가 있음으로 우리가 있고, 우리가 있음으로
내가 있습니다. 연결고리가 '열린 마음'입니다.
열려 있어야 다른 사람을 수용할 수 있고, 진정한
리더십을 발휘할 수 있습니다. 마음을 닫은 채로
에고가 강화될 때 참나는 드러날 수 없고,
존재감도 리더십도 사라집니다.

반응형

'아침편지' 카테고리의 다른 글

솔밭  (0) 2024.08.26
비교를 하면 할수록  (0) 2024.08.23
노년의 '회복탄력성'  (0) 2024.08.21
노화를 물리치려는 폭발적 노력  (0) 2024.08.20
솔바람이 좋아  (0) 2024.08.19
반응형

회복탄력성의 효과는
소년기 및 청년기에만 해당하지 않는다.
물론 어려서부터 정신적 능력을 함양하게 되면
그들의 인생 항로에 충분히 도움이 될 것임은 틀림이 없다.
하지만 기성세대를 포함한 노후를 앞둔 세대 역시
'회복탄력성'의 중요성을 아무리 강조해도 지나치지
않을 것이다. 퇴직을 포함한 직업 일선에서
도외시된 채 자칫 무력감과 허무함의
수렁으로 빠져드는 우(愚)를 범할
수도 있기 때문이다.


- 이종욱의 《노후 역전》 중에서 -


* 105세 김형석 노 교수는
"100년을 살아보니 65세부터가 인생의 전성기더라"라고
말했습니다. 저도 70을 넘겨 보니 젊은 날의 열정과 미숙함이
성숙해지고 농익는 시기는 60대부터라는 생각이 듭니다.
치기 어린 것들이 다듬어지고 숙련됨의 경지에 이르는
시기도 이때부터인 것 같습니다. 한 분야에서 일가를
이룬 후, 또 다른 도전을 한다 해도 충분히 무모하지
않을 수 있고, 설령 그 시도가 뜻한 대로 이루어지지
않았다 하더라도 그다지 낙심할 것도 없다
싶습니다. 노년이야말로 회복탄력성이
절대적으로 필요한 시기입니다.

반응형

'아침편지' 카테고리의 다른 글

비교를 하면 할수록  (0) 2024.08.23
참나 리더십  (0) 2024.08.22
노화를 물리치려는 폭발적 노력  (0) 2024.08.20
솔바람이 좋아  (0) 2024.08.19
퇴고(推敲)  (0) 2024.08.19
반응형

노화와 죽음을
물리치려는 시도는
까마득한 옛날부터 있었지만,
우리가 그 과정을 생물학적으로 자세히
이해하게 된 것은 지난 50년 사이의 일이다.
이런 지식이 축적되면서 노화를
물리치려는 학계와 기업들의
노력이 폭발적으로 늘었다.


- 벤키 라마크리슈난의 《우리는 왜 죽는가》 중에서 -


* 노화는
자연스러운 삶의 과정입니다.
태어나서 성장하는 것이 당연하듯,
나이 들며 늙는 것 또한 너무도 자연스럽습니다.
그러나 최근 들어 나이를 거꾸로 먹는 '역노화' 운동이
활발합니다. 건강한 몸으로 천수를 다하고
세상 소풍을 마치는 것이야말로
더없이 아름다운 인생입니다.

반응형

'아침편지' 카테고리의 다른 글

참나 리더십  (0) 2024.08.22
노년의 '회복탄력성'  (0) 2024.08.21
솔바람이 좋아  (0) 2024.08.19
퇴고(推敲)  (0) 2024.08.19
괴테의 시론(詩論)  (0) 2024.08.19

+ Recent posts