Question

I have a small issue with a python program that I wrote to extract some information from a special text file. The loop (code below) needs to execute my function extract_zcoords() over 500 files (1 file gives one list) so that I can build a dataset.

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) 

THE ERROR: The IOException No such file or directory is the one that occurs, so for some reason python is not accessing the files. I have checked directory pathname (location) and file permissions, and they are correct (read+write). Any ideas why an IOError would be reported when the files do exist and pathname is correct?

Any ideas what might be wrong?

Was it helpful?

Solution

You need to join the dirname and filename into one complete path:

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

OTHER TIPS

Probably, you should use os.path.join when you call

zdata.extend(extract_zcoord(filename))

like this:

zdata.extend(extract_zcoord(os.path.join(location, filename)))
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top