본문으로 바로가기

파일의 IT 블로그

프로그래밍/Python

해당되는 글 49
  • thumbnail
    프로그래밍/Python

    [Python] 스팀 게임 설치 경로 알아내기 - 스팀 VDF / ACF 파일 구조 분석

    프로그래밍을 하면서 스팀에서 설치된 게임의 경로를 알아내야 할 상황이 생겼습니다. 예를 들어 위쳐3 가 스팀으로 설치됐다면 위쳐3의 설치 경로를 인식해야 하는 상황입니다. 스팀에 설치된 게임의 경로를 인식하는 프로그래밍 적인 방법엔 아래와 같은 방법이 있습니다. 1. 프로그램 사용자에게 직접 게임의 경로 입력 받기 2. 스팀에 저장된 파일을 이용해서 자동으로 인식하기 (스팀에는 *.acf, *.vdf 와 같은 형태의 파일을 이용해 게임의 설치 경로를 저장하고 있습니다. 이 파일을 읽어내면 경로를 인식할 수 있습니다.) 3. 디스크 전체를 탐색해서 특정 프로그램을 찾기 3번은 아무래도 디스크 전체를 탐색해야 하기 때문에 너무 느릴것이기 때문에 배제하고 여기서 고려해볼만한 방법은 1번과 2번입니다. 1번의 ..
  • thumbnail
    프로그래밍/Python

    [Python] 파이썬으로 yt-dlp 호출해서 사용하기 (EMBEDDING YT-DLP)

    yt-dlp란 무엇인가? 현재 2023년을 기준으로, 스트리밍 업계에서 유튜브는 정말 독점적인 위치를 차지하고 있습니다. 게임 녹화 영상, 가수들의 음원, 오케스트라 연주 등 안올라오는게 없습니다. 그럼에 따라 유튜브 영상을 다운로드 하는 방법 역시 천차만별로 많습니다. 제가 생각하기에 유튜브 영상을 다운로드 하는 방법 중 상당히 신뢰할만한 방법은 바로 yt-dlp 라는 프로그램을 이용하는 것 입니다. 웹 사이트를 이용하는 방법도 있으나 대부분 느려터졌고, 심지어 랜섬웨어나 바이러스 덩어리를 퍼뜨리는 사이트도 많습니다. 하지만 yt-dlp를 이용하면 광고 없이 최대의 속도로 유튜브 영상 다운로드가 가능합니다. yt-dlp 란 프로그램이 무슨 프로그램인지 궁금해 하시는 분들이 계실건데요. 간단히 소개해드리..
  • thumbnail
    프로그래밍/Python

    [Python] m4a 음원 파일에 앨범 아트 추가하기

    안녕하세요 파일입니다. 최근 들어 파이썬으로 작업하면서 m4a 음원 파일에 앨범 아트를 대량으로 추가해야 하는 경우가 생겼는데요. 이 이유에 관해선 나중에 별도로 포스팅 하도록 하겠습니다. 앨범 아트? mp3던, m4a던 음성 포맷들에는 일반적으로 앨범 아트를 추가할 수 있습니다. 여기서 앨범 아트란 말 그대로 음성에 미리 보기 같이 넣어진 사진을 의미합니다. 앨범 아트가 없으면 이런식으로 윈도우 큰 미리보기에서 아무것도 뜨지 않지만 앨범 아트가 있으면 이런식으로 미리보기에 앨범이 뜹니다. 앨범 아트를 보여주는 기능은 PC 미디어 플레이어 뿐만 아니라 스마트폰 앱 뮤직 플레이어 (PowerAmp) 대부분이 지원하는 기능이기 때문에 추가해두면 확실히 좋죠. 오늘은 m4a 음원 파일에 앨범 아트를 프로그래밍..
  • thumbnail
    프로그래밍/Python

    [Python] 동영상 파일의 책갈피(Chapter, 챕터) 데이터 읽어오기 - 자막 싱크 조절

    요새 새벽에 할 짓이 없어서 도박묵시록 카이지를 보고 있습니다. 2기 먼저 다보고 1기 보고 있는데 오랜만에 봐도 정말 재미있더라구요. 하지만 가장 큰 문제점 싱크가 안맞는다는 점입니다 ㅠㅠ 싱크가 전체적으로 몇 초씩 뒤틀려 있으면 그냥 파일 전체 몇 초씩 교정하면 끝나는 일인데 골때리게도 오프닝, 메인 , 중간 쉬어가는 부분, 엔딩 이렇게 4 파트가 모두 싱크가 + 되거나 - 해야 제대로 맞습니다. 도박묵시록 카이지 1기 (역경무뢰 카이지) 의 경우 2007년도에 나온 애니메이션 무려 18년이나 된 애니메이션이라 그 당시에 방영하던 파일로 자막 작업이 되어있어서 그런 거 같습니다. 이 자막이 이글루스에서 구한 건데 최근 이글루스 블로그가 서비스를 종료했습니다 ㅎㄷㄷ 뭐 영상 받아서 보시는 분들은 대부분..
  • thumbnail
    프로그래밍/Python

    [Python] 현재 모니터 주사율 가져오기 & 변경 - Windows API 활용

    # pip install pywin32 import win32api import win32con # 현재 모니터 주사율 변경하기 def set_refresh_rate(refresh_rate: int) -> None: dm = win32api.EnumDisplaySettings(None, 1) dm.DisplayFrequency = refresh_rate # type: ignore iRet = win32api.ChangeDisplaySettings(dm, 0) # type: ignore if iRet != win32con.DISP_CHANGE_SUCCESSFUL: print("Failed to change the refresh rate") # 현재 모니터 주사율 가져오기 def get_refresh_rat..
  • thumbnail
    프로그래밍/Python

    [번역] 파이썬에서 멀티 프로세싱(Multiprocessing) VS 멀티 쓰레딩(Threading) VS 비동기(AsyncIO) 비교

    참고 : 해당 글은 https://leimao.github.io/blog/Python-Concurrency-High-Level/ 을 번역한 내용입니다. 대부분 의역하였으며, 제가 이해를 돕고자 추가하거나 수정한 내용이 있을 수 있습니다. 또한 원문과 다르게 여기서 CPU 100%을 활용한다는 것은 GIL이 걸리지 않고 모든 쓰레드가 번갈아가면서 실행되며 모든 컴퓨터 자원을 사용하는 것을 의미합니다. 100% 활용하지 못한다는 것은 GIL이 걸려서 쓰레드가 1개만 실행되는 상황을 뜻합니다. 읽기전에 알아두면 좋은 내용 - 컴퓨터의 프로세스와 쓰레드 개념 [최대한 추가 설명을 덧붙였으나 아무래도 영어글이기도 하고 설명이 약간 불친절한 감이 있어서 가벼운 마음으로 읽으시는게 좋을 거 같습니다.] 개요 현대 컴..
  • thumbnail
    프로그래밍/Python

    네이버 웹툰 다운로더 v5.3-NEW (Naver_Webtoon_Downloader) / 초고속 다운로드 지원

    Python으로 제작된 웹툰 다운로더입니다. 만든진 꽤 됬는데 웹툰들 유료화 소식을 듣고 생각나서 조금 다듬었습니다. 버그가 있어서 수정하고 성인웹툰까지 다운로드 가능하게 패치했습니다. 문제 있을시 자삭하겠습니다. 메일로 질문사항 보내는 분들이 많은데 피드백은 댓글만 받으려고 합니다. 댓글로 문의사항 남겨주세요. 또한 문의는 공손하게 작성 부탁드립니다. 공손하게 작성 안하면 아예 안봅니다. 참고로 프로그램 업데이트가 잦으므로 최신 버전 매번 확인해주세요. 프로그램 미작동시 그냥 안된다고만 하지말고 어떤 웹툰 몇화에서 다운로드가 안되고 걸린다프로그램 버전은 ~~고 운영체제는 윈도우10이다 이런식으로 설명해주세요. 특징 - DOS 형식의 간결한 디자인 - 병렬처리를 통한 초고속 다운로드 지원(인터넷 상태에 ..
  • thumbnail
    프로그래밍/Python

    [Selenium] Edge 업데이트 이후 IEDriver 제대로 작동하지 않을때 - 익스플로러 Edge로 강제 리다이렉트 문제

    글을 읽기 전 본 글은 IEDriver이 윈도우 업데이트 이후 강제로 엣지로 열려서 동작하지 않을 때 해결법입니다. 인터넷 익스플로러를 사용하실 일이 없다면 이 글을 보실 필요가 없습니다. 윈도우 업데이트를 하지 않으셨고 IEDriver이 정상 작동하시는 분들 역시 이 글을 읽을 필요가 없습니다. 최근 들어 마이크로소프트 사의 브라우저인 Edge에 많은 변화가 생겼습니다. 우선은 아시다 싶이 ChatGPT의 일종의 업그레이드(?) 판인 Bing Chat AI가 나왔는데 매우 우수한 성능으로 화제가 되고 있습니다. 이 Bing Chat 의 경우 우선적으로 Edge에서만 이용할 수 있습니다. (물론 꼼수를 이용하면 크롬에서도 Bing Chat을 사용할 수 있습니다.) Bing Chat 하나만으로도, Bing..
    이모티콘창 닫기
    울음
    안녕
    감사해요
    당황
    피폐

    이모티콘을 클릭하면 댓글창에 입력됩니다.