我在處理某個項目的某些csv數據文件時遇到了問題。有人建議使用python/csv閱讀器來幫助分解這些文件,我已經取得了一些成功,但不是我可以使用的方式。使用精確的格式化參數用python寫入csv文件
此代碼與我之前嘗試的代碼有點不同。我基本上試圖創建一個數組。在原始數據格式中,前7行不包含任何數據,然後每列包含50個實驗,每個實驗有4000行,總計爲200000行。我想要做的就是取每一列,並將其製作爲一個單獨的csv文件,每個實驗都在其自己的列中。因此,對於每種數據類型,它將是一個50列4000行的數組。這裏的代碼確實打破了正確的值,我認爲邏輯沒問題,但它正在打破我想要的方式。我想不帶引號的分隔符(逗號和空格),我希望引號中的元素值。現在它的做法恰恰相反,沒有引號的元素值和引號中的分隔符。我花了幾個小時試圖找出如何做到這一點無濟於事,
import csv
ifile = open('00_follow_maverick.csv')
epistemicfile = open('00_follower_maverick_EP.csv', 'w')
reader = csv.reader(ifile)
colnum = 0
rownum = 0
y = 0
z = 8
for column in reader:
rownum = 4000 * y + z
for element in column:
writer = csv.writer(epistemicfile)
if y <= 50:
y = y + 1
writer.writerow([element])
writer.writerow(',')
rownum = x * y + z
if y > 50:
y = 0
z = z + 1
writer.writerow(' ')
rownum = x * y + z
if z >= 4008:
break
這是怎麼回事:我現在每行中的4000次迭代的原始數據文件,這樣我可以分開他們用逗號進行了50次實驗。當y,這裏的實驗指標達到50時,它重新回到實驗0,並且通過4000 * y + z的公式將1加到z,它告訴它要查看哪一行。完成所有50個實驗的行後,結束。這裏的問題是,我不知道如何讓python寫入引號中的實際值,以及我的分隔符是否在引號外。
任何幫助將不勝感激。如果這似乎是一個愚蠢的問題,我沒有編程經驗,這是我的第一次嘗試。謝謝。
對不起,我會盡量讓這個更清楚。原始的csv文件有幾列,每列都是不同的數據集。
原始文件的一個縮影例子如下:
column1 column2 column3
exp1data1time1 exp1data2time1 exp1data3time1
exp1data1time2 exp1data2time2 exp1data3time2
exp2data1time1 exp2data2time1 exp2data3time1
exp2data1time2 exp2data2time2 exp2data3time2
exp3data1time1 exp3data2time1 exp3data3time1
exp3data1time2 exp3data2time2 exp3data3time2
所以,實際的版本有4000行,而不是2對每個新的實驗。實際版本中有40列,但基本上,原始文件中的數據類型與列號相匹配。我想將每個數據類型或列分隔成一個單獨的csv文件。
這看起來像:
csv file1
exp1data1time1 exp2data1time1 exp3data1time1
exp1data1time2 exp2data1time2 exp3data1time2
csv file2
exp1data2time1 exp2data2time1 exp3data2time1
exp1data2time2 exp2data2time2 exp3data2time2
csv file3
exp1data3time1 exp2data3time1 exp3data3time1
exp1data3time2 exp2data3time2 exp3data3time2
所以,我會在文件中移動的原始數據到一個新的列,並且每個數據類型以它自己的文件。現在我只做一個文件,直到我可以移動單獨的實驗來分隔新文件中的列。所以,在代碼中,上面會讓4000變成2.我希望這樣做更有意義,但如果沒有,我會再試一次。
我認爲,我們有以下這個麻煩。顯示輸入和所需的輸出。 – 2010-05-29 03:57:59
我建議我們教哈里森先生「釣魚」,或者給他提供有關「如何釣魚」的信息,而不是「給他一條魚」。此代碼不是他的主要問題。 – msw 2010-05-29 04:37:03