如何使用python添加两个文件并保存到另一个文件中
输入1: 输入2:如何使用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
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])))