0

我正在用python编码并编写了一个代码,该代码基本上读取一个文件,从中获取一些信息并进行一些计算,然后将答案输出到一个新文件;我现在尝试通过从列出它们的文件中读取文件名来进行概括,以便它遍历许多文件(因为我有一个需要浏览的文件目录)。但是我收到此错误消息 IOError: [Errno socket error] [Errno -2] Name or service not known

我假设它是因为我现在正在尝试系统地为多个文件运行我的代码,所以这里是我执行它的代码位:

f = open('//disk2/ps1/cech/CFHTLenS/cluster_catalogues/field_list')
fields = f.readlines()
f.close()
for W in fields:

    file = open('//disk2/ps1/cech/CFHTLenS/cluster_catalogues/clusters_%s_info.cat' %W)
    data = np.loadtxt(file)
    file.close()


    sig_cl = data[:,3].copy()

    m200 = 10**(0.124 * sig_cl + 12.493)
    np.savetxt('//disk2/ps1/bertbert/z_ref_%s.cat'%W,m200)
4

2 回答 2

0

对于循环任意文件集,模块fileinput可以为您提供帮助。它设置了一个很好的命令行界面,您可以在其中指定一组文件并轻松循环它们。

于 2013-08-08T19:04:53.640 回答
0

我不确定为什么你会从文件处理例程中得到一个套接字错误,但最明显的问题是W最后会有一个行尾字符,这可能会导致问题。

尝试:

W = W.strip()

作为for循环的第一行。

W这将在您将其添加到要打开的文件名之前删除所有前导和尾随空格。

于 2013-08-08T14:02:03.927 回答