다음과 같이 편집하세요
우선, 이것이 중복된 질문이라고 확신합니다. 그런데 어떻게 찾아야 할지 모르겠어요. 나는 꽤 오랫동안 이 일을 해왔습니다.
저는 Python을 사용하여 .txt 파일에서 특정 파일의 경로를 읽습니다. 즉
/home/username/Documents/K\"{u}hnelt.pdf
이제 를 사용하여 다른 디렉토리에 복사하려고 하면 shutil.copyfile()
찾을 수 없다는 메시지가 나타납니다. 그러나 수동으로 작성하면
/home/username/Documents/Kühnelt.pdf
그것은 아주 잘 작동합니다. 코딩 문제인 것 같은데 저는 이런 부분에 대해 잘 알지 못해서 알 수가 없습니다.
다음 질문에 기술적인 오류가 있다면 죄송하지만, 올바르게 수정하는 방법을 모르겠습니다. 올바르게 이해하시길 바랍니다. 문제는 명령줄에 작성된 문자열을 "해석"하고 이를 "완전히 구성된" 유형 문자열로 변환할 수 있는 Python 명령이 있습니까?
내 컴퓨터에서 현재 폴더로 여러 .pdf 파일을 복사하기 위해 Python으로 스크립트를 작성하고 있습니다. 실제로 파일에서 PDF 위치를 읽었습니다 .bib
. 이 .bib
파일의 위치는 TeX 형식으로 작성됩니다.
이제 내 Python 스크립트는 .bib 파일을 한 줄씩 읽고 찾을 때
file = {:home/user/Documents/K\"{u}hnelt\_2003.pdf:pdf},
유지하기 위해 구문 분석합니다.MyString = "home/user/Documents/K\"{u}hnelt\_2003.pdf"
그런 다음 shutil.copyfile(MyString, "NewName.pdf" )
파일을 현재 디렉터리에 복사합니다. 이 TeX 스타일을 포함하는 파일을 제외하고는 잘 작동합니다.
답변1
오래되고 유니코드를 인식하지 못하는 BibTeX에서 최신 버전으로 전환하는 것을 고려해보세요.비브라텍스, Biber는 유니코드를 지원합니다.
이것이 옵션이 아닌 경우 다음을 사용하십시오.서지 파서도서관. 여기에는 BibTeX 호환 TeX 표기법을 유니코드로 변환하기 위한 코드가 포함되어 있습니다.bibtexparser.customization.convert_to_unicode
. 설명서에 제공된 예를 기반으로 합니다.
import bibtexparser
with open(bibtex_file_name) as bibtex_file:
parser = bibtexparser.bparser.BibTexParser()
parser.customization = bibtexparser.customization.convert_to_unicode
bibliography = bibtexparser.load(bibtex_file, parser=parser)
for entry in bibliography.entries:
if entry.has_key('file'):
shutil.copy(entry['file'], …)