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 的任何想法?

有什么想法可能是错的吗?

4

2 回答 2

5

可能,您应该在调用时使用 os.path.join

zdata.extend(extract_zcoord(filename))

像这样:

zdata.extend(extract_zcoord(os.path.join(location, filename)))
于 2012-05-29T15:52:50.557 回答
2

您需要将目录名和文件名加入一个完整的路径:

location = '/Users/spyros/Desktop/3NY8MODELSHUMAN/HomologyModels' 
for filename in os.listdir(location):
    filename = os.path.join(location, filename)
于 2012-05-29T15:53:32.053 回答