向fi插入文本

2024-06-11 16:44:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在我的文件里插入一些文字

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

当我运行时,我得到了一个混乱的文本文件。。你能告诉我哪里是我的错吗?你知道吗


Tags: 文件intxtforclosecountrangeseek
3条回答

您必须调用它,而不是仅仅引用该方法。你知道吗

请尝试以下操作:

c.close()

您将其错误地输入为:

c.close

在我看来,您正在尝试在两个过程中编写一个包含两列数据的文件。你知道吗

相反,一次完成:

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

你没有关闭文件。您只引用了该方法,而不是实际调用它。比较:

c.close

c.close()

因此,您的文件将只在第二个for循环中写入所有内容。即使在这里,事情也会变得一团糟。(因此你会得到一个“凌乱的文本文件”)。你知道吗


实际上,在这里使用with语句来打开文件更像python。它有一个很大的优点,即一旦您完成文件的处理,它将自动关闭文件,因此您不需要调用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)

相关问题 更多 >