在python的数据流入时将数据输出到文本文件中

在python的数据流入时将数据输出到文本文件中,python,fileoutputstream,Python,Fileoutputstream,下面的代码逐行读取文件。当从输入文件中读入行时,将每行输出到文本文件(output.txt)的最有效方法是什么 fileHandle = open('file', 'r') for line in fileHandle: fields = line.split('|') print(fields[0]) # prints the first fields value print(fields[1]) # prints the second fields value

下面的代码逐行读取文件。当从输入文件中读入行时,将每行输出到文本文件(output.txt)的最有效方法是什么

fileHandle = open('file', 'r')

for line in fileHandle:
    fields = line.split('|')

    print(fields[0]) # prints the first fields value
    print(fields[1]) # prints the second fields value

fileHandle.close()

上面的代码是在

中找到的。我就是这样做的,我在“读取”时打开一个输入文件,在“写入”时打开一个输出文件。我从Python教科书中得到了这个答案。它说python可以同时处理多个打开的文件。只需确保将引用添加到打印语句“file=outfile”。然后当然关闭两个文件

infile = open(infileName,'r')
outfile = open(outfileName,'w')

for line in infile:
    fields = line.split('|')

    print(fields[0], file=outfile)
    print(fields[1], file=outfile)

infile.close()
outfile.close()

一种有效的方法是使用带有上下文管理器的生成器来处理文件。上下文管理器负责关闭文件。生成器将一次生成一行,而不是首先生成临时列表

with open('read_file', 'r') as reader:
    with open('output_file', 'w') as writer:
        gen = (line.split('|') for line in reader)
        for row in gen:
            writer.write(row)

以下是pandas版本,我们可以以非常可读的方式执行此操作:

import pandas as pd
df = pd.read_csv('infile.csv', sep="|")
df.iloc[:,:2].to_csv('outfile.csv', sep="|", index=False)
这里的关键是:

df.iloc[:,:2] # selects the first two columns
创建类似文件的对象的示例:

import io
s = u"""A|B|C
1|2|3
4|5|6"""

file = io.StringIO(s)

import pandas as pd
df = pd.read_csv(file, sep="|")
output = df.iloc[:,:2].to_csv(sep="|", index=False)
print(output)
返回:

A|B
1|2
4|5

“你不认为在这样的任务中使用熊猫是一种巨大的过度杀伤力吗?”艾琳有时会这样认为,这里可能就是这样。然而,事实上你得到了一系列的输出选项,可以很容易地进行诸如合并、拆分、求和等操作。。。使其成为几乎所有任务的正确选择。谢谢。如果我输入的txt文件的第一行是| AA | BB | 11 |,我如何将其输出为| AA | 11 |?@Dan格式在指定变量“fields”后,可以使用串联将值合并在一起。例如:打印(字段[0]+“|”+字段[2]),谢谢。如果输入txt文件的第一行是| AA | BB | 11 |,如何将其输出为| AA | 11 |格式?