在Python中读/写文件

2024-06-10 00:52:30 发布

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

我尝试在russell 2k中创建一个新的股票代码文本文件,该文件如下所示:

enter image description here

我只想在每一行末尾加上股票代码。所以我有以下代码:

with open("russ.txt", "r") as f:
    for line in f:
        line = line.split()
        line = line[-1]
        if line == "Ticker": continue
        print line
        with open("output.txt", "w") as fh:
            fh.seek(0,2)
            print line
            fh.write(line)

我在output.txt文件中的最后一行代码是列表中最后一个代码,而不是所有的代码。我认为使用fh.seek(0,2)会在每次通过的末尾创建一个新行。我做错什么了?而且,实际上我不需要创建另一个文档,我可以编辑当前的文档,但我也无法确定这一点,所以如果您能告诉我如何写入同样可以接受的文件。在


Tags: 文件代码文档txtoutputaswithline
3条回答

每次打开文件时都会覆盖该文件。将with行移到for块之外,并在写入之前查找到末尾(或在追加模式下打开)。在

filemode"w"在每个步骤中创建一个新的空文件。使用模式"a"进行追加,或者将打开的文件移到循环之外。在

with open("russ.txt", "r") as f:
    for line in f:
        line = line.split()
        line = line[-1]
        if line == "Ticker": continue
        print line
        with open("output.txt", "a") as fh:
            fh.write(line + "\n")

或者最好只打开一次文件:

^{pr2}$

我相信在您的案例中使用^{}也会很方便:

import fileinput
import sys


for line in fileinput.input("russ.txt", inplace=1):
    sys.stdout.write(line.split(' ')[-1])

fileinput.input将更改原始文件。在

相关问题 更多 >