0

私はpythonでコーディングしており、基本的にファイルを読み取り、そこから情報を取得して計算を行い、回答を新しいファイルに出力するコードを作成しました。私は今、それらがリストされているファイルからファイル名を読み取ることによって、多くのファイルをループするように一般化しようとしました(通過する必要があるファイルのカタログがあるため)。ただし、次のエラー メッセージが表示されます IOError: [Errno socket error] [Errno -2] Name or service notknown

私は今、いくつかのファイルに対してコードを体系的に実行しようとしているためだと思います。

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

ファイル処理ルーチンからソケットエラーが発生する理由はわかりませんが、最も明白な問題は、W問題を引き起こす可能性のある行末文字が末尾にあることです。

試す:

W = W.strip()

forループの最初の行として。

Wこれにより、開くファイルの名前に追加する前に、先頭と末尾のスペースがすべて削除されます。

于 2013-08-08T14:02:03.927 に答える
0

ファイルの任意のセットをループするには、モジュールfileinputが役立ちます。一連のファイルを指定して、それらを簡単にループできる素敵なコマンド ライン インターフェイスをセットアップします。

于 2013-08-08T19:04:53.640 に答える