programing

Python에서 파일 확장자 변경

codeshow 2023. 8. 5. 11:07
반응형

Python에서 파일 확장자 변경

에서 가정합니다.index.pyCGI로, 나는 포스트 파일을 가지고 있습니다.foo.fasta파일을 표시합니다.바꾸고 싶어요foo.fasta의 파일 확장명은 다음과 같습니다.foo.aln진열대에어떻게 해야 하나요?

pathlib을 사용한 우아한 방법.경로:

from pathlib import Path
p = Path('mysequence.fasta')
p.rename(p.with_suffix('.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")

이 파일 = 변경할 파일의 절대 경로

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"

위의 내용은 다음과 같습니다.

분할 텍스트 메서드는 이름과 확장자를 구분하여 튜플을 만듭니다.

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

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

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

그런 다음 해당 이름에 새 확장자를 추가합니다.

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

AnaPana가 언급했듯이 pathlib은 python 3.4에서 더 새롭고 더 쉬우며 이 문제를 쉽게 처리할 수 있는 새로운 with_suffix 메서드가 있습니다.

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

pathlib 사용 및 전체 경로 보존:

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

안타깝게도 파일 이름에 여러 개의 점이 있어 분할 텍스트가 제대로 작동하지 않는 경우를 경험했습니다.내 작업 내용:

file = r'C:\Docs\file.2020.1.1.xls'
ext = '.'+ os.path.realpath(file).split('.')[-1:][0]
filefinal = file.replace(ext,'')
filefinal = file + '.zip'
os.rename(file ,filefinal)
>> file = r'C:\Docs\file.2020.1.1.xls'
>> ext = '.'+ os.path.realpath(file).split('.')[-1:][0]
>> filefinal = file.replace(ext,'.zip')
>> os.rename(file ,filefinal) 

반복 확장에 대한 잘못된 논리(샘플: 'C:\Docs\.xls_syslog.xls.xls의

언급URL : https://stackoverflow.com/questions/2900035/changing-file-extension-in-python

반응형