输入:我有100多个示例文件。每个示例文件都有两个不同的文件,扩展名为*.column' and *.datatypes
File1 每个文件都有column
个名称,扩展名为* .column
datatypes
,扩展名为* .datatypes
我需要的是各自文件样本中的output
文件
输出文件应包含column
个名称以及datatypes
。
目前我正在将所有100个文件数据合并并保存到一个文件中。 例如:file_1:
column names datatypes
id int
name string
例如:file_2:
column names datatypes
id int
name string
我得到了在一个单个文件中合并的所有文件列名和数据类型的输出。 我需要的是为每个样本单独合并单个文件。
for name in os.listdir("C:\Python27"):
if name.endswith(".column"):
for file in name:
file = os.path.join(name)
joined = file+ ".joined"
with open(joined,"w") as fout:
filenames = glob.glob('*.column')
for filename in filenames:
with open(filename) as f1:
file_names = glob.glob('*.datatypes')
for filename in file_names:
with open(filename) as f2:
for line1,line2 in zip(f1,f2):
x = ("{0} {1} \n".format(line1.rstrip(),line2.rstrip()))
y = x.strip()
fout.write(y.strip() + ',\n')
请帮助我。
答案 0 :(得分:0)
希望下面的内容能够奏效。这是基于每个*.column
文件具有相应的*.datatypes
文件名的理解,否则代码将引发File not found.
错误。
for colname in os.listdir("C:\Python27"):
if colname.endswith(".column"):
print('Processing:' + colname)
file = os.path.splitext(colname)[0]
joined = file+ ".joined"
with open(joined,"w") as fout:
with open(colname) as f1:
datname = file+'.datatypes'
with open(datname) as f2:
for line1,line2 in zip(f1,f2):
x = ("{0} {1}".format(line1.rstrip(),line2.rstrip()))
y = x.strip()
fout.write(y.strip() + ',\n')
print('Finished writing to :'+joined)
我测试了一些示例输入文件,如下所示file1.column
date_sev
pos
timestamp
date
id
name
int
string
id
name
int
string
当我运行文件时,我在控制台中获得以下输出
Processing:file1.column
Finished writing to :file1.joined
Processing:file2.column
Finished writing to :file2.joined
Processing:file3.column
Finished writing to :file3.joined
我得到的输出文件是file1.joined
date_sev timestamp,
pos date,
id int,
name string,
id int,
name string,
此外,如果你想更好地输出文件的输出语法,那么我将进行如下更改... 发件人强>
x = ("{0} {1}".format(line1.rstrip(),line2.rstrip()))
要强>
x = ("{0},{1}".format(line1.rstrip(),line2.rstrip()))
发件人强>
fout.write(y.strip() + ',\n')
要强>
fout.write(y.strip() + '\n')
我在初始版本的原始解决方案中保留了初始版本的格式。