我想在我的文件中插入一些文字,
X
---
0.1
0.2
.
.
.
99.9
我想在该文件中添加一些随机浮点数:
X Y
0.1 ,38.58
0.2 ,12.45
0.3 ,79.03
. , .
. , .
99.9 ,47.36
代码:
#!/usr/bin/python
import random
a=[random.uniform(10,100) for i in range (1000)]
c = open("dosya.txt","w")
c.write('X DEGER: Y DEGER:\n')
c.write('--------------\n')
count = 0
while (count < 99.9):
count = count + 0.1
c.write("%s \n" % (count,))
c.close
c= open("dosya.txt","r+")
c.seek(37,0)
for k in range(900):
print a[k]
c.write(",%f" %(a[k]))
c.seek(5,1)
c.close
当我运行它时,我得到了凌乱的文本文件..你能告诉我我的错吗?
答案 0 :(得分:2)
您没有关闭该文件。您只引用了该方法,而不是实际调用它。比较:
c.close
要
c.close()
因此,您的文件只会在第二个for循环中写入所有内容。即使在这里,事情也会变得混乱。 (因此你得到一个“凌乱的文本文件”)。
在这里使用with
语句来打开文件实际上更加pythonic。它具有很大的优势,它会在您使用完文件后自动关闭文件,因此您无需致电close()
:
with open("dosya.txt","w") as c:
c.write('X DEGER: Y DEGER:\n')
c.write('--------------\n')
count = 0
while (count < 99.9):
count = count + 0.1
c.write("%s" % (count,))
你的代码也有点......奇怪。我将解决一些问题:
c.write("%s \n" % (count,))
。这里不需要额外的逗号。你可以删除它。所以你的代码应该是这样的:
count = 0
while count < 99.9:
count += 0.1
f.write('%s, \n' % count)
答案 1 :(得分:0)
而不是仅仅引用该方法,您必须调用它。
试试这个:
c.close()
你错误地输入了:
c.close
答案 2 :(得分:0)
在我看来,你试图在两遍中写一个包含2列数据的文件。
相反,一次性完成:
import random
with open('dosya.txt', 'w') as f:
f.write('X DEGER: Y DEGER:\n')
f.write('--------------\n')
count = 0.0
while (count < 99.9):
count += 0.1
f.write('%s, %f\n' % (count, random.uniform(10,100))