有没有办法连接两个文本文件而不将结果写入另一个文件,但只是将它存储在一个变量中? 我正在寻找的是
my_fun(cat(file1,file2))
其中my_fun
将读取串联 cat 的结果,并将其用作真实文本文件。
换句话说,我想做
with open(my_fileOut,'w') as outfile:
for file in [file_1,file_2]:
with open(file,'r') as infile:
for line in infile:
outfile.write(line)
并使用变量重新设置my_fileOut
,因此不会生成outfile.write(line)
但将结果存储在内存中
非常感谢您提供任何帮助或建议,
此致
PS:对不起,如果我的英语不是很好
答案 0 :(得分:0)
您可以使用itertools.chain()
:
from itertools import chain
def my_fun(f):
for line in f:
print(line.rstrip())
with open('file1') as file1, open('file2') as file2:
my_fun(chain(file1, file2))
这是有效的,因为文件对象是可迭代的,chain()
可以有效地连接一个或多个iterables。
答案 1 :(得分:0)
看起来你最后只想写一个文件。那么为什么不呢?:
def cat(f1, f2):
with open(f1, 'r') as f:
f1txt = f.read()
with open(f2, 'r') as f:
f2txt = f.read()
return f1txt + f2txt
def my_fun(f3, text):
with open(f3, 'w') as f:
f.write(text)
out = '/path/to/some/file'
file1 = '/path/to/file1'
file2 = '/path/to/file2'
my_fun(cat(file1, file2))
这将读取file1
内的所有数据,然后file2
,然后将file2
中的所有数据添加到file1
的结尾数据。如果您的意思是以另一种方式连接,请指明。