2011-09-17 4 views
0

즉, distutils.dir_util.copy_tree()을 사용하여 F332를 사용하여 포맷 된 USB thumbdrive로 ext3 fs의 데이터를 복사하려고합니다. 파일 이름은 길어서 재미있는 문자를 포함하는 경향이 있습니다. python이 ext3에 대해 잘 벗기거나 이스케이프 처리합니다. 이 탈출하지 않는 파이썬 FAT32의 썸 드라이브,에 던져 도착하지만, copy_tree()를 사용시, 불법 문자 목록은 갑자기 성장이 결과 :여러 파일 시스템 유형으로 작업하기 : 파이썬이 제대로 벗어날 수 없습니까?

IOError: [Errno 22] invalid mode ('wb') or filename: u'/media/usb0/data/someweirdfile.with.dots.etc?satellite=1' 

분명히 모드 wb? 존재의 결과로, 괜찮습니다 불법적 인 성격. copy_tree()을 다시 쓰거나 (또는 ​​파일명을 이스케이프하는 것보다), 파이썬이 다른 파일 시스템 유형에서 작동하고 있다는 것을 쉽게 알 수있는 방법이 있습니까?

답변

1

아니요, 아니요, 파이썬은 기본 파일 시스템에 대해 알지 못합니다. 그것은 또한 파일 이름에서 아무 것도 벗어나지 않습니다 - 그것은 당신의 일입니다 - ?은 단지 ext 파일 시스템에 유효한 문자입니다.

+0

그건 의미가 있습니다, 건배. – Murodese

2

파이썬 (또는 다른 사용 공간 응용 프로그램)은 처음부터 파일 시스템 유형을 결정할 수 없습니다. 간단한 설정에서는 작동하지만 (매우 느리지 만), 하드 링크와 다양한 파일 시스템이 변경 될 경우에는 필연적으로 실패합니다. FUSE 또는 UnionFS를 통해 FAT를 마운트하면 어떻게됩니까?

따라서 특정 문자가 포함 된 파일 이름을 가질 수없는 파일 시스템이있는 경우 해당 문자를 수동으로 제거해야합니다.

관련 문제