Python에서 파일 확장자 변경
에서 가정합니다.index.py
CGI로, 나는 포스트 파일을 가지고 있습니다.foo.fasta
파일을 표시합니다.바꾸고 싶어요foo.fasta
의 파일 확장명은 다음과 같습니다.foo.aln
진열대에어떻게 해야 하나요?
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
'programing' 카테고리의 다른 글
configurationManager가 네임스페이스 시스템에 없습니다.배열 (0) | 2023.08.05 |
---|---|
데스크톱으로의 경로에 대한 환경 변수는 무엇입니까? (0) | 2023.08.05 |
SQL Server 데이터베이스를 축소하려면 어떻게 해야 합니까? (0) | 2023.08.05 |
powershell에서 csv 파일의 줄을 어떻게 반복합니까? (0) | 2023.08.05 |
이름을 사용하여 컨트롤을 찾을 수 없습니다. 각 반응 형식의 formControlName (0) | 2023.08.05 |