我正在创建为电网模拟器生成输入的软件。模拟器读取每个时期的能源需求新的txt文件。
我有一个要迭代的数据框,并为每一行生成一个新的文本文件。
MDN HEN OTA HLY WKM ... TWZ ROX HWB MAN TIW
0 286.8 430.5 1398.5 0.2 1223.1 ... 91.9 79.2 178.1 0.0 232.4
1 279.3 429.3 1420.0 0.2 1230.8 ... 90.9 82.3 177.8 0.0 233.6
2 268.8 425.3 1435.0 0.2 1244.8 ... 93.6 79.0 173.9 0.0 237.2
3 261.1 417.6 1410.2 0.2 1246.6 ... 92.5 74.7 169.9 0.0 236.2
4 257.5 404.2 1386.9 0.2 1245.5 ... 90.7 69.5 166.0 0.0 237.1
... ... ... ... ... ... ... ... ... ... ...
但是,我需要的输出在写该行之前必须有第一行只是1 \ n,否则模拟器将无法正确读取文件。
输出需要看起来像这样
1
287.537042371199 431.649568377806 1402.33325378508 0.162154563486092 1226.4793487036 133.69916571938 7.42037354420338 192.081022508012 315.482546659453 562.506743454388 168.854644175358 5.1833003364674 41.3483082932446 1144.9313428406 92.1430145439233 79.3691849819957 178.546707766296 238.475566825782 0 0
我已经尝试了许多方法,但似乎无法获得所需的确切格式。最接近的是
i = 1
for index, row in oldDemand.iterrows():
fh = open('C://Users//Tingle//OneDrive//Desktop//SWEM//demand//'+str(i) +'.txt', 'w')
fh.write("1\n"+ str(row.values))
i += 1
这使
1
[ 287. 430. 1399. 0. 1223. 7. 192. 133. 315. 561. 178. 5.
41. 1142. 92. 79. 178. 0. 232.]
但是,由于方括号,模拟器无法读取此内容
编辑:我使用.replace添加了一个丑陋的解决方法,以摆脱括号和换行。这需要打开和关闭大量文件,这不理想,但是此任务通常只执行一次。
for index, row in oldDemand.iterrows():
fh = open('C://Users//Tingle//OneDrive//Desktop//SWEM//demand//'+str(i) +'.txt', 'w')
fh.write("1\n"+ str(row.values))
fh.close()
fh = open('C://Users//Tingle//OneDrive//Desktop//SWEM//demand//'+str(i) +'.txt', 'r')
filedata = fh.read()
fh.close()
filedata = filedata.replace("[ ", "")
filedata = filedata.replace("]", "")
filedata = filedata.replace(".\n", ".")
fh = open('C://Users//Tingle//OneDrive//Desktop//SWEM//demand//' + str(i) + '.txt', 'w')
fh.write(filedata)
fh.close()
i += 1
print("Demand calculations and txt file generator complete.")
输出量
1
287. 430. 1399. 0. 1223. 7. 192. 133. 315. 561. 178. 5. 41. 1142. 92. 79. 178. 0. 232.
更优雅的解决方法将不胜感激。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句