将文本插入文件

时间:2013-07-16 10:11:20

标签: python file text insert

我想在我的文件中插入一些文字,

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

当我运行它时,我得到了凌乱的文本文件..你能告诉我我的错吗?

3 个答案:

答案 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))