2017-10-20 17 views
-1

私はPythonの初心者です。私はPython 2.7.11で小さなスクリプトを作ってアジレントの機器からデータを取得しましたが、フォーマットは理想的ではありません。 はこれまでのところ、私はtxtファイルに従うように私のデータをフォーマットするために管理している:Pythonのtxtファイルの分割カラム

FREQ1

FREQ2

...

freq201

DATA1

DATA2

...

data201

と私は従うように私はeasislyエクセルでtxtファイル開くことができるように、それらをフォーマットしたいと思います:

FREQ1を。データ1

freq2;データ2

...; ...

freq201; data201

あなたはそれを達成する簡単な方法を知っていますか?あなたはFREQとデータの行の行の同じ数を持っているので、コードのこのビットはトリックを行う必要があり、事前に

おかげ

CL

+0

1対1のマッピングがあり、N行のfreqとN行のデータがあることが保証されていますか?そうであれば、ファイルをメモリにロードすることができます。それを2つの部分に分割し、一緒に圧縮することができます –

+0

はい、測定の95%に対して201行のデータと201行のデータがあります。ファイルをメモリにロードし、分割して元に戻すにはどうしたらいいですか?私は ";"を使うことができますか?文字列を一緒にジッパーバックするには? –

答えて

0

#imports OrderedDict to have an Ordered dictionary 
from collections import OrderedDict 

#opens files 
my_file = open('freq.txt','r') 
my_new_file = open("new.txt",'w') 

#saves lines of file as a list, with each line being one item in the list 
lines_list = my_file.readlines() 

#creates empty dictionary to fill with data 
freq_data = OrderedDict() 

#iterates through lines and adds to dictionary, with freq as key and data as value 
for line in range(len(lines_list)/2): 
    freq_data[lines_list[line]] = lines_list[line+10] 
    keys = freq_data.keys() 

#writes to your new file 
for i in keys: 
    my_new_file.write(i.strip() + ' ; ' + freq_data[i]) 

#closes both files 
my_file.close() 
my_new_file.close() 

基本的に何本コードはあなたのファイルを開き、各freqを対応するデータ値に接続し、それを新しいファイルに書き込みます。

:あなたはあなたのためにそれが

freq_data[lines_list[line]] = lines_list[line+201] 

になるので、これはのように見えるテキストファイルをオンに、あなたのデータは、2で割った行のどんな数にラインに

freq_data[lines_list[line]] = lines_list[line+10] 

を変更することができます

FREQ1 FREQ2 freq3 ... DATA1のデータ2データ3

... に

freq1;データ1

freq2;データ2

freq3;データ3 ...

0

ありがとう、これは私が必要としていたものです。

関連する問題