os.walk()
방법을 사용하여 폴더를 크롤링하고 있습니다. 폴더 중 하나에는 약 10 만 개의 파일이 많이 있습니다. 파일은 다음과 같습니다 : p_123_456.zip
. 그러나 그들은 p123456.zip
로 읽 힙니다. 실제로 Windows 탐색기를 열어 폴더를 탐색하면 처음 몇 초 동안 파일은 p123456.zip
처럼 보이지만 모양은 p_123_456.zip
으로 변경됩니다. 이것은 이상한 시나리오입니다.python3에서 os.walk를 사용할 때 파일 읽기가 잘못되었습니다.
모든 폴더와 파일이 반복 라인의 파이썬 변수로 읽혀지기 때문에 time.sleep()
을 사용할 수 없습니다. 여기에 코드 조각입니다 :
for root, dirs, files in os.walk(srcFolder):
os.chdir(root)
for file in files:
shutil.copy(file, storeFolder)
마지막 줄에서, 나는이 파일이 파일 p123456.zip
이 존재하지 않는다고 말하고, 예외를 찾을 수 없습니다 얻을. 누구도이 신비한 문제에 부딪 혔습니까? 어쨌든 이것을 우회? 이것의 원인은 무엇입니까? 고맙습니다.
무엇이 잘못 되었나요? 파일을 열려고 할 때 예외가 발생합니까? 그렇다면 예외와 추적은 무엇입니까? 아니면 파이썬이 잘못된 이름을 가져올 것이라고 가정하고 있습니까? 가능한 폴더가'p_123_456.zip'과'p123456.zip'을 모두 가질 수 있으며, 창이 탐색기에서 표시되도록 파일 이름을 정렬하기 만하면됩니까? –
다른 폴더로 파일을 이동하고 싶습니다. 따라서 이름을 읽을 때 '_'이 없습니다. 그러나 나는 움직이는 동작을 호출 할 때 그러한 파일이 존재하지 않는다고 말한다. – splinter
파일을 이동할 때 원본 파일의 전체 경로를 제공합니까? 'source_full_path = os.path.join (root, fname)' –