我正在使用python进行编码,并编写了一个代码,基本上读取ina文件从中获取一些信息进行一些计算,然后将答案输出到新文件中;我现在试图概括,以便它通过从列出它们的文件中读取文件名来循环遍历许多文件(因为我有一个我需要经历的文件目录)。但是我收到此错误消息 IOError:[Errno套接字错误] [Errno -2]名称或服务未知
我认为它是因为我现在正在尝试系统地运行几个文件的代码,所以这里是我执行此操作的代码:
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)
答案 0 :(得分:0)
我不确定你为什么从文件处理例程中得到套接字错误,但最明显的问题是W
最后会有一个行尾字符,这可能会导致问题。
尝试:
W = W.strip()
作为for
循环的第一行。
这会删除W
中的所有前导和尾随空格,然后再将其添加到要打开的文件名中。
答案 1 :(得分:0)
对于循环任意文件集,模块fileinput可以帮助您。它设置了一个很好的命令行界面,您可以在其中指定一组文件并轻松地循环它们。