问题
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?
回答1:
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)
回答2:
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)))
来源:https://stackoverflow.com/questions/10802418/ioerror-when-trying-to-open-existing-files