일부 파일을 옮겨야하는 스크립트를 작성하고 있지만 불행히도 os.path
이 잘 작동하지 않는 것 같습니다. 히브리어로 이름 붙여진 파일이있을 때 문제가 있습니다.히브리어 파일 이름에 질식하는 Python의 os.path
files = os.listdir('test_source')
for f in files:
pf = os.path.join('test_source', f)
print pf, os.path.exists(pf)
출력은 다음과 같습니다 :
test_source\ex True
test_source\joe True
test_source\mie.txt True
test_source\__()'''.txt True
test_source\????.txt False
alt text http://eli.thegreenplace.net/files/temp/hebfilenameshot.png
지금이 디렉토리에있는 파일을 통해 이동이 코드를 고려 : 다음 디렉토리의 내용의 스크린 샷입니다 os.path.exists
은 히브리어로 명명 된 파일이 존재하지 않는다고 생각하십니까? 어떻게 해결할 수 있습니까? 윈도우 XP 홈 SP2
인쇄는 모든 환경에서 ascii에 대해 까다롭게 보이지 않습니다. 내 대답을 보라. – PEZ
인쇄는 유니 코드 인쇄에 문제가 없습니다. 문제는 stdout 인코딩에있을 수 있습니다. 콘솔이 유니 코드이면 아무런 문제가 없습니다. 그렇지 않으면 명시 적 인 코드가 필요합니다. – piro
그게 훌륭합니다. 올바른 인코딩 세트로 파일 핸들을 인쇄 할 경우 Windows에서 정상적인 파일 이름을보고 할 수 있습니다. 'replace'오류 처리기는 나에게 패배 신호를 보냅니다. =) – PEZ