Вопрос по file-io, python – IOError при попытке открыть существующие файлы

1

У меня есть небольшая проблема с программой на 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) 

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

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

Может кто-нибудь придумать причину не всегда использовать необработанные строки при указании путей? Есть ли обратная сторона в этом? (not предложив это как причину проблемы, просто заставил меня задуматься о минимизации потенциальных проблем с путями и т. д.) Levon

Ваш Ответ

2   ответа
5

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

zdata.extend(extract_zcoord(filename))

как это:

zdata.extend(extract_zcoord(os.path.join(location, filename)))
Спасибо, очень просто! Spyros
2

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

location = '/Users/spyros/Desktop/3NY8MODELSHUMAN/HomologyModels' 
for filename in os.listdir(location):
    filename = os.path.join(location, filename)
Спасибо, это было так просто! Spyros

Похожие вопросы