2016-11-11 6 views
1

私はPythonで本当に新しいです。 私はtxtファイルからデータを読み込み、そこからいくつかの列と行を選択して、それを新しいtxtファイルに書き込もうとしています。具体的にどのようにtxtファイルから列と行を選択し、pythonで別のtxtファイルに書き留めますか?

これは私の入力データの例です。

*ELEMENT_SOLID 
$# eid  pid  n1  n2  n3  n4  n5  n6  n7  n8 
     1  1 2235 2237 1579 1565 2067 2067  596  596 
     2  1 2238 2240 1525 1547 2073 2073  674  674 

は、私はちょうど3番目と4番目の列を使用する必要があると私は第三columは必要ありません。

私はここで多くの回答の質問から見ましたが、私はまだこれを解決する方法を理解していません。

私の問題を助けてくれることを願っています。

ありがとうございます!

答えて

0

このコードは、 'element_solid.dat'ファイルからタブーアを読み取り、1つの要素を変更した後に 'element_solid2.dat'に保存します。あなたは、配列の一部だけを保存したい場合は

、コマンド私はscatchます以下他のソリューション(コメントで要求されるように)、では np.savetxt('element_solid2.dat',data[0:1,3:6], fmt='%7.i')

import numpy as np 

#Main programm 
#read array from file 'element_solid.dat' 
data = np.loadtxt('element_solid.dat', skiprows=2) 
print(data) 

#change one number in data to see the difference 
data[0,2]=0 

#save array to file 'element_solid.dat' without header 
np.savetxt('element_solid2.dat',data, fmt='%7.i') 

を試してみますより柔軟なチューニングが必要ですが、さらに微調整が必​​要です。

with open(filename) as fil: 
    for line in fil: 
     if line=="\n": 
      #skip empty line 
      continue 
     if line[0]=='#': 
      #skip comment lines starting with # 
      continue 
     if line=="#LastLine": 
      #stops searching the file when reaches this line 
      break 
     else: 
      #play around with line.split() -> string to list 
      #and fltList=[float(elem) for elem in line.split()] 
      #fltList is a list of floatingpoint numbers 
+0

ありがとうございました。本当に役に立ちます。 フォローアップの質問をすることはできますか? データのリストの後に、不要な文が複数行続いて、別の重要なデータが再び続く場合はどうなりますか? 簡単に言えば、いくつかの行をもう一度スキップして、別のデータを読み取る必要があります。どうやってやるの? –

+1

こんにちはMr. Masduki、私の答えが好きだったら、それを投票してください;) –

関連する問題