繁体   English   中英

-python-连接文本文件并将其存储到变量中

[英]-python - concatenate text file and store it into variable

有没有一种方法可以串联两个文本文件,而不必将结果写入另一个文件,而只是将其存储在变量中? 我正在寻找的是像

my_fun(cat(file1,file2))

my_fun将读取串联的结果,并将其用作真实文本文件。

换句话说,我想做

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:对不起,如果我的英语不是很好

您可以使用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()有效地串联了一个或多个可迭代对象。

看来您只想最后写一个文件。 那为什么不呢?

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数据的末尾 如果您打算连接其他方式,请指定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM