2017-03-17 17 views
0

txtファイルを読んでいるときにいくつか問題があります。私がしなければならないことは、ファイルを読み(約360)、プロットを作成することです。私のようなファイルに特殊文字がある場合を除いて、すべては機能します: ""私の読書機能がそのキャラクターを見つけたらそれはクラッシュする。それをスキップする方法はありますか?私のコード:それらの「$」の行をスキップする方法はあり enter image description here :ここtxtファイルのホット・スキップ・スペシャル・キャラクタ

import os 
import matplotlib.pyplot as plt 
import numpy as np 

i = 10 
j = 0 
X = [] 
Y = [] 
Z = [] 
k = 0 
A = np.zeros([360,719]) 

for i in range(10,360,10): 
     X = [] 
     Y = [] 
     if len(str(i)) == 2: 
      data = open(dir + '\\150317_ScPONd_0%s_radio.txt'%i, 'r') 
     else: 
      data = open(dir + '\\150317_ScPONd_%s_radio.txt'%i, 'r') 
     z = data.readlines() 
     data.close() 
     for line in z: 
      if not line.startswith('$'): 
       data_2 = line.split('\t') 
       X.append(data_2[0]) 
       Y.append(data_2[1]) 
     A[j,:] = X 
     A[(j+1),:] = Y 

そして、私のファイルがどのように見えるかですか?申し訳ありません、その写真のために、私はそれをより良く接続する方法がわかりません。

+0

なぜnp.genfromtxtを使用しないのですか? – plasmon360

+0

'if line.startswith( '$')== False:'? – WhatsThePoint

+0

@WhatsThePointはい私は試しましたが失敗しました。 – Maq92

答えて

0

Thaks to @ user1753919私は答えを見つけました。誰かがまだこれに興味がある場合は、ここで働いているコード:

for i in range(10,360,10): 
     X = [] 
     Y = [] 
     if len(str(i)) == 2: 
      data = np.genfromtxt(dir + '\\150317_ScPONd_0%s_radio.txt'%i,skip_header = 12) 
     else: 
      data = np.genfromtxt(dir + '\\150317_ScPONd_%s_radio.txt'%i,skip_header = 12) 
     for line in data: 
      X.append(line[0]) 
      Y.append(line[1]) 
     A[j,:] = X 
     A[(j+1),:] = Y 
     plt.plot(A[j,:],A[(j+1),:],label = '{} K'.format(i)) 
     plt.hold 
     j = j+2 
0

genfromtxtすることは行き過ぎです。

np.loadtxt(file, comments='$')