从一个文件写入另一个文件

2024-09-30 14:21:38 发布

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

我已经被这个Python家庭作业问题困扰了一段时间:“编写一个完整的Python程序,从一个文件中读取20个实数内部.txt并将它们按排序顺序输出到文件中外挂.txt“。”

好吧,我要做的是:

f=open('inner.txt','r')
n=f.readlines()
n.replace('\n',' ')
n.sort()
x=open('outter.txt','w')
x.write(print(n))

所以我的思考过程是:打开文本文件,n是其中读取行的列表,我替换其中的所有换行提示,以便对其进行正确排序,然后打开要写入的文本文件并将列表打印到其中。第一个问题是它不允许我替换新行函数,第二个问题是我不能将列表写入文件。在


Tags: 文件程序txt列表排序顺序opensort
3条回答

我猜real意思是浮动。所以你必须把结果转换成float来正确排序。在

raw_lines = f.readlines()
floats = map(float, raw_lines)

那你得整理一下。要写回结果,必须转换为字符串并用行尾连接:

^{pr2}$

最后你必须把结果写到目的地。在

我刚试过这个:

>>> x= "34\n"
>>> print(int(x))
34

因此,您不必像那样过滤掉"\n",而可以将其放入int()中,将其转换为整数。假设每行有一个数,它们都是整数。在

然后需要将每个值存储到一个列表中。列表有一个^{} method,可用于对列表进行排序。在

编辑: 忘记了,正如其他人已经说过的,您需要迭代n中的值,因为它是一个列表,而不是一个单独的项。在

以下是一个逐步解决方案,可以解决您遇到的问题:)

打开文件,这里没问题。在

f=open('inner.txt','r')

别忘了关闭文件:

f.close()

n现在是每行的列表:

^{pr2}$

没有list.replace方法,因此我建议将上面的行改为n = f.read()。然后,这将起作用(不要忘记重新分配n,因为字符串是不可变的):

n = n.replace('\n','')

你仍然只有一串数字。但是,我建议使用换行符作为分隔符拆分字符串,而不是替换换行符:

n = n.split('\n')

然后,将这些字符串转换为整数:

`n = [int(x) for x in n]`

现在,这两个将起作用:

n.sort()
x=open('outter.txt','w')

你想自己写数字,所以用这个:

x.write('\n'.join(str(i) for i in n))

最后,关闭文件:

x.close()

在处理文件时,使用上下文管理器(with语句)也是一种很好的做法:

with open('inner.txt', 'r') as f:
    # do stuff with f
# automatically closed at the end

相关问题 更多 >