2017-07-06 14 views
0

テキストファイルから1つのテキストファイルにデータを収集するプログラムを作成しようとしています。私は何らかの理由で多くの問題を抱えています。 1つの最終出力ファイルは、10種類の異なるスターターファイル(シリアル1-10.txt)で構成されています。このデータは、別の列のファイル(テキストまたはCSV)に配置してから、10個のシリアルファイルを保持する次のDataフォルダに移動する必要があります。Python3でforループを実行して別の列に追加する方法はありますか?

次のコードは、最終的なテキストファイルごとに1つの長い列を出力し、11個の異なる列は出力しません(「番号付け」列を数えます)。

for z in datarange: 
    f = open('/home/pi/Desktop/Newdata/Data' + str(z) + '.csv', 'a') 
    # print(f) 
    therange = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
    thelist = (folder_list + "Data" + str(z)) 

    for i in therange: 
     lines = open(thelist + "/Serial" + str(i) + ".txt", 'r+')#, encoding='utf-8') #open that same text file (reading priviledges 
     thedata = lines.readline() 
     mylist = [int (x) for x in thedata.split(',') if x.strip().isdigit()] 
     #locals()["text" + str(i)] = pd.DataFrame(mylist) 
     df = pd.DataFrame(mylist) 
     f.write(str(df)) 

また、私はこのような何かを試してみました。(同じ結果を得るために、一つの長い列が

df = { 'Column1': [(text1)], 'Column2': [(text2)], 
    'Column3': [(text4)],'Column5': [(text5)], 
    'Column6': [(text6)], 'Column7': [(text7)], 'Column8': [(text8)], 
    'Column9': [(text9)], 'Column10': [(text10)]} 

f.write(str(df)) 

データ出力要約:。。

Column1 
0  145 
1  146 
2  123 
3  154 
. 
. 
. 
287 140 

Column2 
0  145 
1  144 
. 
. 
. 
287 128 
は、
Column3 

など....

お試しください。

答えて

0

誰かが似たような問題を抱えている場合は、ここで私が使い終わったものがあります。これは私のアプリケーションのために働いた。私は最終的に私がそれが欲しいものを得るために私の質問の答えに合うので、それを投稿したい。質問のコードの

パート:datarangeにおけるzのため : F =オープン( '/ホーム/ PI /デスクトップ/ NEWDATA /データ' + strの(Z)+ '.TXT'、 'A')

therange = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
    thelist = (folder_list + "Data" + str(z)) 

    for i in therange: 
     lines = open(thelist + "/Serial" + str(i) + ".txt", 'r+')#, encoding='utf-8') #open that same text file (reading priviledges 
     thedata = lines.readline() 
     mylist = [int (x) for x in thedata.split(',') if x.strip().isdigit()] 
     locals()["text" + str(i)] = mylist 
     if i == 10: 
      try: 

       df = pd.DataFrame({ 'Column1': text1, 'Column2': text2, 'Column3': text4, 'Column5': text5, 
      'Column6': text6, 'Column7': text7, 'Column8': text8, 
     'Column9': text9, 'Column10': text10}) 
       pd.set_option('max_rows', 288) 
       pd.set_option('max_colwidth', 11) 


       data = df.to_string(index=False) 
       f.write(str(data)) 
      except: 
       os.remove('/home/pi/Desktop/Newdata/Data' + str(z) + '.txt') 
       pass 

私が達成しようとしていた(行を平均化する)ことは、この設定で作業しました。私は作成されたテキストファイルの各行を合計して分割することができました。 ** csvファイルに置かれた場合、「Column1 Column2 ...」と「data」はcsv出力の「ONE COLUMN」にありますので、代わりにテキストファイルを使用します。

関連する問題