IOError при попытке открыть существующие файлы

У меня есть небольшая проблема с программой на Python, которую я написал, чтобы извлечь некоторую информацию из специального текстового файла. Цикл (код ниже) должен выполнить мою функцию extract_zcoords() более 500 файлов (1 файл дает один список), так что я могу построить набор данных.

import os

def extract_zcoord(filename): 
    f = open(filename, 'r')         
    ... # do something with f


### LOOP OVER DIRECTORY 
location = '/Users/spyros/Desktop/3NY8MODELSHUMAN/HomologyModels' 

for filename in os.listdir(location):
    extract_zcoord(filename) 

ОШИБКА: IOException No such file or directory это то, что происходит, поэтому по какой-то причине python не обращается к файлам. Я проверил путь к каталогу (местоположение) и права доступа к файлам, и они правильные (чтение + запись). Любые идеи, почему IOError будет сообщено, когда файлы существуют и путь указан правильно?

Есть идеи, что может быть не так?

2 ответа

Решение

Вам нужно объединить имя и имя файла в один полный путь:

location = '/Users/spyros/Desktop/3NY8MODELSHUMAN/HomologyModels' 
for filename in os.listdir(location):
    filename = os.path.join(location, filename)

Возможно, вы должны использовать os.path.join, когда вы звоните

zdata.extend(extract_zcoord(filename))

как это:

zdata.extend(extract_zcoord(os.path.join(location, filename)))
Другие вопросы по тегам