У меня есть небольшая проблема с программой python, которую я написал, чтобы извлечь некоторую информацию из специального текстового файла. То, что я пытаюсь сделать, это объединить ~ 500 списков, а затем использовать полученный объединенный список. Цикл (код ниже) должен выполнить мою функцию extract_zcoords() более 500 файлов (1 файл дает один список), чтобы я мог построить набор данных.IOError при попытке открыть существующие файлы
----- КОД
#!/usr/local/bin
import os,string
from sys import version
# ********
def extract_zcoord(filename):
''' collect z-coordinates of atoms from charged amino acids '''
f = open(filename, 'r')
pdbfile = f.readlines()
### Code that processes file and builds z_coords1 list
### ....
for i in range(len(charged_groups)):
z_coords1.append(float(charged_groups[i][48:54]))
print z_coords1 #diagnostic
return z_coords1
# ********
### LOOP OVER DIRECTORY
location = '/Users/spyros/Desktop/3NY8MODELSHUMAN/HomologyModels'
zdata = []
for filename in os.listdir(location):
try:
zdata.extend(extract_zcoord(filename))
except NameError:
print "No such file!"
except SyntaxError:
print "Check Your Syntax!"
except IOError:
print "PDB file NOT FOUND!"
print 'Z-VALUES FOR ALL CHARGED RESIDUES'
print zdata #diagnostic
import pickle
f1 = open("z_coords1.dat", "wb")
pickle.dump(zdata, f1)
f1.close()
f2 = open("z_coords1.dat", "rb")
zdata1 = pickle.load(f2)
f2.close()
assert zdata == zdata1, "error in pickle/unpickle round trip!"
ОШИБКА: IOException является тот, который имеет место, поэтому по некоторым причинам питон не имеет доступа к файлам. Я зарегистрировал путь к каталогу (местоположение) и , и они верны (читайте + пишите). Любые идеи о том, почему сообщение IOError должно было бы сообщаться, когда файлы действительно существуют, а путь - правильный?
Я пробовал os.pathisfile (место), и он возвращается FALSE. Я не совсем уверен, , что делать этого, так как при попытке
for filename in os.listdir(location):
print filename
Я получаю все файлы имена, напечатанные на экране! Какие-нибудь идеи, что может быть неправильным?
Может ли кто-нибудь подумать о причине не всегда использовать необработанные строки при указании путей? Есть ли недостаток в этом? (* не * предлагая это как причину проблемы, просто заставил меня задуматься о минимизации потенциальных проблем с помощью путей и т. д.) – Levon