我試了幾個小時來研究這個問題,但是每個可能的解決方案並不適合我的特殊需求。 我在Python(v3.5)中編寫了以下內容以下載製表符分隔的.txt文件。使用Python v3.5加載製表符分隔文件,省略一些行,並將特定列中的最大和最小浮點數輸出到新文件
#!/usr/bin/env /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5
import urllib.request
import time
timestr = time.strftime("%Y-%m-%d %H-%M-%S")
filename="/data examples/"+ "ace-magnetometer-" + timestr + '.txt'
urllib.request.urlretrieve('http://services.swpc.noaa.gov/text/ace-magnetometer.txt', filename=filename)
This downloads the file from here and renames it based on the current time。它完美的作品。
我希望我可以使用「文件名」變量然後加載文件並做一些事情(而不是寫出完整的文件路徑和文件名,因爲我的最終目標是做以下幾百個不同的文件,所以長期使用變量會更容易)。
這使用最可變想法似乎工作,因爲添加以下上面打印文件輸出到標準輸出的內容......(所以它能夠找到該文件沒有任何問題):
import csv
with open(filename, 'r') as f:
reader = csv.reader(f, dialect='excel', delimiter='\t')
for row in reader:
print(row)
從the file可以看出,前18行是信息性的。 第19行提供了實際的列名稱。然後是一行破折號。
的實際數據我很感興趣,開始在線21
我想找到(右第三列),在「BT」列中的最小和最大數字。我發現的一種可能的解決方案只能用於整數,而這個數據集具有浮點數。
另一種可能的解決方案涉及導入pyexcel模塊,但我似乎無法正確安裝...
import pyexcel as pe
data = pe.load(filename, name_columns_by_row=19)
min(data.column["Bt"])
我希望能夠在最小的BT和最大的Bt值打印成兩個單獨的文件,稱爲minBt.txt和maxBt.txt。
我希望任何人有任何指示,請。
那完美。謝謝,Apoc! :) – ZPMMaker
好的,下一個問題,如果你不介意請...有時傳感器無法進行測量(因此創建我正在下載的文件的系統改爲在該列中輸入-999.9。是否有在搜索min_bt值之前過濾出所有等於-999.9的值的方法?再次感謝您的幫助。:) – ZPMMaker
好的,我已經更新了答案,以包含解決方法。它只會添加列中的值,如果它們不等於'-999.9'。 – Apoc