如何使用python添加两个文件并保存到另一个文件中

如何使用python添加两个文件并保存到另一个文件中,python,Python,输入1: 输入2: create external table db.emp(id int,name string) row formatted fields terminated by ',' location 'hadfs:.../'; create external table db.emp1(id int,name string) row formatted fields terminated by ',' location 'hadfs:.../'; 重新查询的输出: create

输入1:

输入2:

create external table db.emp(id int,name string)
row formatted fields terminated by ','
location 'hadfs:.../';

create external table db.emp1(id int,name string)
row formatted fields terminated by ','
location 'hadfs:.../';
重新查询的输出:

create  table db.emp(id int,name string)
location 'hadfs:.../';;
create table db.emp1(id int,name string)
location 'hadfs:.../';
这两个文件存储在file1.hql下


这两个文件存储在file2.hql下,依此类推

create external table db.emp1(id int,name string)
row formatted fields terminated by ','
location 'hadfs:.../';
create  table db.emp1(id int,name string)
location 'hadfs:.../';
但是我没有得到正确的输出。请给我一个提示如何实现这一点。 使用此代码时,我得到的输出不正确

我试过用密码

filenames = ['in1.txt', 'in2.txt']
with open('result.txt', 'w') as outfile:
  for fname in filenames:
    with open(fname) as infile:
       content = infile.read().replace('\n', '')
        outfile.write(content)
它将向input1和input2文件生成此类输出。 现在我需要做些什么

emp.hql
create external table db.emp(id int,name string)
row formatted fields terminated by ','
location 'hadfs:.../';

emp1.hql

create external table db.emp(id int,name string)
row formatted fields terminated by ','
location 'hadfs:.../';

并以emp.hql等形式存储在文件中。

此缩进可以正常工作:

create external table db.emp(id int,name string)
row formatted fields terminated by ','
location 'hadfs:.../';
create table db.emp(id int,name string)
location 'hadfs:.../'; 

并负责记录文件的顺序。您可以使用tuple
filename=('in1.txt','in2.txt')
先录制in1.txt,然后录制in2.txt。

此缩进可以正常工作:

create external table db.emp(id int,name string)
row formatted fields terminated by ','
location 'hadfs:.../';
create table db.emp(id int,name string)
location 'hadfs:.../'; 

并负责记录文件的顺序。您可以使用tuple
filenames=('in1.txt','in2.txt')
先录制in1.txt,然后录制in2.txt。

这里的目标是从
input1
读取4行,从
input2
读取2行,删除所有空行,然后将这些行顺序写入输出文件

要做到这一点,可以使用一个函数来读取适当块中的每个文件。
zip()
用于同时获取两组数据

filenames = ['in1.txt', 'in2.txt']
with open('result.txt', 'w') as outfile:
    for fname in filenames:
        with open(fname) as infile:
            content = infile.read().replace('\n', '')
            outfile.write(content)
给您
file1.hql
如下所示:

创建外部表db.emp(id int,name string)
以“,”结尾的行格式字段
位置“hadfs:…/”;
创建表db.emp(id int,名称字符串)
位置“hadfs:…/”;;

我建议您添加
print
语句,以便更好地了解每一行在做什么。

这里的目标是从
input1
读取4行,从
input2
读取2行,删除所有空行,然后将这些行按顺序写入输出文件

要做到这一点,可以使用一个函数来读取适当块中的每个文件。
zip()
用于同时获取两组数据

filenames = ['in1.txt', 'in2.txt']
with open('result.txt', 'w') as outfile:
    for fname in filenames:
        with open(fname) as infile:
            content = infile.read().replace('\n', '')
            outfile.write(content)
给您
file1.hql
如下所示:

创建外部表db.emp(id int,name string)
以“,”结尾的行格式字段
位置“hadfs:…/”;
创建表db.emp(id int,名称字符串)
位置“hadfs:…/”;;

我建议您添加
print
语句,以便更好地了解每一行正在执行的操作。

请修复代码缩进请验证缩进,并澄清和显示部分错误输出,以及删除“\n”而不是“\n\n”的原因。
outfile.write(content)
行缩进不正确。嗯,是的。但是如果你想达到你想要的输出,它不应该像那样缩进。请验证请修复代码缩进请验证缩进,并澄清和显示部分错误输出,以及删除“\n”而不是“\n\n”的原因。
outfile.write(content)
行缩进不正确。嗯,是的。但是如果你想达到你想要的输出,它不应该像那样缩进。请验证使用此代码时,我正在将所有内容放入一个文件中,但我希望创建外部表db.emp(id int,name string)行格式字段,以“,”location“hadfs:…/”结尾;创建表db.emp(id int,name string)位置“hadfs:…/”;;并创建外部表db.emp1(id int,name string)行格式字段,以“,”location“hadfs:…/”结尾;创建表db.emp1(id int,name string)位置“hadfs:…/”;如何在文件2中添加。请帮助我。我尝试了使用,而不是使用行。首先,我将每个表信息放入table.haql,然后我尝试添加两个文件。我在re.findall(r'CREATE[^;]*;',text):print>>fout,re.search(r')(现在,在createexternaltable db.emp(id int,name string)下的输出是emp.hql)行格式字段以“,”location“hadfs:…/”结尾;现在我需要添加两个文件emp.hql如何实现我不明白您正在尝试做什么。请在您的问题中加入真实的数据示例以及确切的预期输出。使用此代码时,我将所有内容都放在一个文件中,但我希望创建外部表db.emp(id int,name string)以“,”位置“hadfs:…/”结尾的行格式字段;创建表db.emp(id int,name string)位置“hadfs:…/”;放入文件1,并创建外部表db.emp1(id int,name string)以“,”位置“hadfs:…/”结尾的行格式字段;创建表db.emp1(id int,name string)位置“hadfs:…/”;到文件2中如何添加。请帮助我。我尝试使用而不是使用行,首先我将每个表信息放入table.haql,然后我尝试添加两个文件。我尝试使用re.findall中的codefor项(r'CREATE[^;]*;,text):print>>fout,re.search(r')(?现在输出是CREATE external table db.emp下的emp.hql)(id int,name string)以“,”location“hadfs:…/”结尾的行格式字段;现在我需要添加两个文件emp.hql如何实现我不明白您试图做什么。请在您的问题中加入真实的数据示例以及准确的预期输出。
import itertools

def grouper(iterable, n, fillvalue=None):
    "Collect data into fixed-length chunks or blocks"
    # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx
    args = [iter(iterable)] * n
    return itertools.izip_longest(fillvalue=fillvalue, *args)

with open('in1.txt') as f_1, open('in2.txt') as f_2:
    for file_number, rows in enumerate(zip(grouper(f_1, 4, ''), grouper(f_2, 2, '')), start=1):
        # Remove carriage returns and empty lines from all rows
        rows = [[row.strip() for row in r if len(row.strip())] for r in rows]

        with open('file{}.hql'.format(file_number), 'w') as f_output:
            f_output.write('{}\n{}\n'.format('\n'.join(rows[0]), '\n'.join(rows[1])))