programing

Python에서 파일 확장자 변경

sourcetip 2021. 1. 16. 11:14
반응형

Python에서 파일 확장자 변경


index.pyCGI에서 파일 foo.fasta을 표시 할 포스트 파일이 있다고 가정 합니다. foo.fasta의 파일 확장자를 foo.aln표시 파일 로 변경하고 싶습니다 . 내가 어떻게 해?


os.path.splitext(), os.rename()

예를 들면 :

# renamee is the file getting renamed, pre is the part of file name before extension and ext is current extension
pre, ext = os.path.splitext(renamee)
os.rename(renamee, pre + new_extension)

import os
thisFile = "mysequence.fasta"
base = os.path.splitext(thisFile)[0]
os.rename(thisFile, base + ".aln")

thisFile = 변경중인 파일의 절대 경로


pathlib.Path를 사용하는 우아한 방법 :

from pathlib import Path
p = Path('mysequence.fasta')
p.rename(p.with_suffix('.aln'))

Python 3.4부터 pathlib 내장 라이브러리가 있습니다. 따라서 코드는 다음과 같을 수 있습니다.

from pathlib import Path

filename = "mysequence.fasta"
new_filename = Path(filename).stem + ".aln"

https://docs.python.org/3.4/library/pathlib.html#pathlib.PurePath.stem

나는 pathlib를 좋아한다 :)


이것을 사용하십시오 :

os.path.splitext("name.fasta")[0]+".aln"

위의 작동 방식은 다음과 같습니다.

splitext 메서드는 튜플을 만드는 확장에서 이름을 분리합니다.

os.path.splitext("name.fasta")

생성 된 튜플은 이제 "name"및 "fasta"문자열을 포함합니다. 그런 다음 튜플의 첫 번째 요소 인 "name"문자열에만 액세스하면됩니다.

os.path.splitext("name.fasta")[0]

그런 다음 해당 이름에 새 확장을 추가하려고합니다.

os.path.splitext("name.fasta")[0]+".aln"

pathlib 사용 및 전체 경로 유지 :

from pathlib import Path
p = Path('/User/my/path')
new_p = Path(p.parent.as_posix() + '/' + p.stem + '.aln')

참조 URL : https://stackoverflow.com/questions/2900035/changing-file-extension-in-python

반응형