2017-07-06 52 views
0

我想創建一個程序來從文本文件中收集數據到一個文本文件中。出於某種原因,我有很多問題。最後一個輸出文件由10個不同的初始文件(Serial 1-10.txt)組成。這些數據需要放在不同列中的文件(文本或csv)中,然後才能移動到保存10個以上串行文件的下一個數據文件夾。如何在Python3中爲循環添加不同的列?

以下代碼在每個最終文本文件中輸出一個長列,而不是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文件中,則「csv」輸出中的「Column1 Column2 ...和data below」全部在「ONE COLUMN」中。因此,我決定改爲使用文本文件。