私はこのプログラムをPython 2.6.2でLinux上で走らせましたが、10進数値で返してもらえましたが、Windows上でPython 2.7.2で動作させると動作しません。メモリエラーですが、私は理由を理解できません。私はWindows上で株価(ROE)を計算するプログラムを実行する必要があります。ありがとう。なぜこのプログラムはLinux Pythonシェルで動作しますか?Windowsでは動作しません。
プログラムを実行するために必要なCSVファイルはhereです。 。
import csv
csvname = raw_input("Enter csv name: ")
sbuxfile = csv.reader(open(csvname), delimiter=',', quotechar='|')
# List of Data
row5, row8, row3, row7, avgequity, roe1, roe2 = ([] for i in range(7))
count = 0
# Grab data and numerical values from CSV.
for row in sbuxfile:
count += 1
if count == 8:
row8 = row
elif count == 5:
row5 = row
elif count == 3:
row3 = row
elif count == 7:
row7 = row
a = 1
# Perform calculations for average equity and ROE.
while a < 8 :
if a == 1:
avgequity.append(round(float(row8[a]),2))
roe1.append(float(row5[a])/float(row8[a]))
roe2.append((float(row5[a])/float(row3[a])) * (float(row3[a])/float(row7[a])) * (float(row7[a])/float(row8[a])))
else:
avgequity.append(round(float((row8[a]),2) + float(row8[a-1]))/2)
roe1.append(float(row5[a])/float(row8[a]))
roe2.append((float(row5[a])/float(row3[a])) * (float(row3[a])/float(row7[a])) * (float(row7[a])/((float(row8[a]) + float(row8[a-1]))/2)))
a+=1
print "\nAverage equity is " + str(avgequity) + "\n"
print "ROE method 1 is " + str(roe1) + "\n"
print "ROE method 2 is " + str(roe2)
入力ファイルとは何ですか? – KevinDTimm
'open(csvname)'を 'open(csvname、 'rb')'に変更するとどうなりますか? –
上記の入力ファイルを追加してダウンロードしてテストすることができます。また、rbを追加すると、同じ空白ページだけでは動作しませんし、しばらくしてからメモリエラーが発生します。 – Goose