구현 의도
- 근래에 기초적인 알고리즘으로 기초를 다지면서 지내다보니
- 포스팅에 대해 신경쓰고 있지 않았으며
- 또 FM2024를 하다가 계속 찰흑 덩어리 애들이 보이면
- 사진을 구해서 포토샵으로 누끼 딴걸
- 인게임 내에서 사용중인 스킨으로 해당 캐릭터의 고유 ID로 파일 이름 변경 후
- Facegen 프로그램을 실행과정을 거쳐서 해결했는데
- 몇 개인지도 모르는 고유 캐릭터를 하나씩 변경하기 힘들고 귀찮아서
- 우선 자주 보이는 2002061000부터 2002079999 까지 모두 같은 사진으로
- 복사 파일을 이름만 변경해서 생성하기 위해
- 파이썬을 활용한 실용적인 알고리즘을 작성
구현 과정
- 우선 파이썬 외장 함수인 shutil을 사용
- shutil이란 shell utilities의 줄인 말로
- 파일 및 디렉토리 작업을 수행하는 데 사용되는 파이썬의 표준 라이브러리 모듈이며
- 주로 파일의 복사, 이동, 이름 변경 등의 파일 작업을 수행으로 아래와 같이 사용이 가능.
import shutil # shell utilities
원본파일 = "origin.png"
shutil.copy(원본파일,"test.png") # 파일 복사
복사폴더 = "test/"
shutil.copy(원본파일,f"{복사폴더}test.png") # 특정 폴더에 복사
shutil.move(원본파일,복사폴더) # 파일 이동
- 그리고 f 스트링 format을 사용하는걸 계속 잊어버려서 아래에 한 번 정리
# 실수의 경우
a = 1.12
print(f"{a:.4f}")
# 정수의 경우
a = 10
print(f"{a:04d}")
- 이제 본격적인 FM2024 사진 생성하는 코드는 아래와 같이 작성되어 있으며
- 사용하고 싶다면 하단에 첨부된 파일을 사용하거나 그대로 붙여넣어서 사용이 가능.
- 주석을 붙여놨기에 확인이 쉬울지도 모르겠지만 도움이 되길 바라면서
import shutil
def copy_and_rename_file(original_file, new_folder, default_num, start_num, end_num, not_delete_files):
# 파일을 end_num 만큼 복사하고 이름을 변경하는 함수
for i in range(start_num,end_num+1):
if i not in not_delete_files:
destination = new_folder + f"r-{default_num}{i:05d}.png" # 새로운 파일의 경로
shutil.copyfile(original_file, destination) # 파일 복사
print(f"복사 완료: {destination}")
else: print(f"{i}는 있는 사진")
print("생성 완료")
# 순서
# 1. 각각의 "" 안에 이미지 경로와 생성 파일 경로를 붙여 넣기
이미지 = r"" #
생성_파일경로 = r""
original_file = (이미지 +"/").replace("\\","/")
new_folder = (생성_파일경로+"/").replace("\\","/")
# 2. 파일 공통 번호 입력
default_num = "20020"
# 3. 기존 생성한 커스텀 파일에서 공통 번호를 제외한 나머지 번호 입력
not_delete_files = {61815,61816,69184}
# 4. 시작하고 싶은 번호와 마지막 파일 번호를 각각 입력
start_num = 61000
end_num = 79999
# 5. 함수 실행
copy_and_rename_file(original_file, new_folder, default_num, start_num, end_num, not_delete_files) # 함수 실행
- import os도 사용하는 방식이 있는데 다음에 기회가 되면 사용해서 또 포스팅하겠습니다.
'실용적인 알고리즘' 카테고리의 다른 글
[파이썬, RPA] - RPA 단계 별 예시 코드 구현 (0) | 2024.07.21 |
---|---|
[자바스크립트] 마우스 이동에 따른 이미지 움직임 & 글레어 효과 (0) | 2024.04.17 |
[파이썬] 파이썬 코드를 실행 파일로 만들기 (0) | 2024.04.17 |