python複数のファイルのパッチワークデータを読み込む
14741 ワード
一、需要
11.txt
12.txtにはsqlフィールドの別名が入っています
この2つのファイルの内容をマージする必要があります.行は次のように対応します.
二、考え方
python読み出し11.txtファイルの各行は、
この3つの配列の長さが一致しているため、いずれかの配列を遍歴し、それをつなぎ合わせ、1つのファイルに併存します.大功を成し遂げる.
三、pythonのコマンドラインパラメータ
Pythonでもsysのsysを使うことができます.argvは、コマンドラインパラメータを取得します. sys.argvはコマンドラインパラメータのリストです. len(sys.argv)は、コマンドラインパラメータの数です.
以上のコードを実行し、出力結果は次のとおりです.
四、実現
五、展示成果
13.txt
11.txt
search a_datetime_x from dpl11294
search c_long from dpl11294
search c_int from dpl11294
search a_long_x from dpl11294
search c_suffix from dpl11294
search a_int from dpl11294
search a_boolean from dpl11294
search a_float from dpl11294
search a_double from dpl11294
search a_boolean_x from dpl11294
search a_string_x from dpl11294
search a_int_x from dpl11294
search c_month_z from dpl11294
search a_double_x from dpl11294
search c_text from dpl11294
search a_long from dpl11294
search c_boolean from dpl11294
search c_city_suffix from dpl11294
search c_month_e from dpl11294
search a_string from dpl11294
search a_float_x from dpl11294
search c_am_pm from dpl11294
search a_datetime from dpl11294
search c_province from dpl11294
search c_date_time from dpl11294
search c_phone_prefix from dpl11294
search a_zero from dpl11294
12.txtにはsqlフィールドの別名が入っています
'a x'
' long'
' '
'a longx'
' '
' '
' '
' float '
' double '
' x'
' x'
' x'
' '
' doublex'
' '
' long'
' '
' '
' '
' '
' floatx'
' '
' '
' '
' '
' '
' '
この2つのファイルの内容をマージする必要があります.行は次のように対応します.
search a_datetime_x as 'a x' from dpl11294
二、考え方
python読み出し11.txtファイルの各行は、
from
に従って分割され、分割されたデータはそれぞれ配列に格納される.読み取り12.txtファイルの各行は、配列に格納されます.この3つの配列の長さが一致しているため、いずれかの配列を遍歴し、それをつなぎ合わせ、1つのファイルに併存します.大功を成し遂げる.
三、pythonのコマンドラインパラメータ
Pythonでもsysのsysを使うことができます.argvは、コマンドラインパラメータを取得します.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
print ' :', len(sys.argv), ' 。'
print ' :', str(sys.argv)
以上のコードを実行し、出力結果は次のとおりです.
$ python test.py arg1 arg2 arg3
: 4 。
: ['test.py', 'arg1', 'arg2', 'arg3']
四、実現
#!/usr/bin/env python
# -- coding: utf-8 --
import fileinput
import sys
# ,
tableArr = []
# ,
operateArr = []
# , as
asArr = []
def readTxt():
for line in fileinput.input(sys.argv[1]):
line_data = line.split('from')
operate = line_data[0]
table = line_data[1]
operateArr.append(operate)
tableArr.append(table)
pass
def readOtherTxt():
for line in fileinput.input(sys.argv[2]):
# ,
asArr.append(line.strip('\r
'))
pass
def merge():
fo = open(sys.argv[3], "w")
for index, item in enumerate(operateArr):
fo.write(item + "as " + asArr[index] + " from" + tableArr[index])
fo.close()
if __name__ == '__main__':
readTxt()
readOtherTxt()
merge()
python merge.py 11.txt 12.txt 13.txt
五、展示成果
13.txt
search a_datetime_x as 'a x' from dpl11294
search c_long as ' long' from dpl11294
search c_int as ' ' from dpl11294
search a_long_x as 'a longx' from dpl11294
search c_suffix as ' ' from dpl11294
search a_int as ' ' from dpl11294
search a_boolean as ' ' from dpl11294
search a_float as ' float ' from dpl11294
search a_double as ' double ' from dpl11294
search a_boolean_x as ' x' from dpl11294
search a_string_x as ' x' from dpl11294
search a_int_x as ' x' from dpl11294
search c_month_z as ' ' from dpl11294
search a_double_x as ' doublex'from dpl11294 from dpl11294
search c_text as ' ' from dpl11294
search a_long as ' long' from dpl11294
search c_boolean as ' ' from dpl11294
search c_city_suffix as ' ' from dpl11294
search c_month_e as ' ' from dpl11294
search a_string as ' ' from dpl11294
search a_float_x as ' floatx' from dpl11294
search c_am_pm as ' ' from dpl11294
search a_datetime as ' ' from dpl11294
search c_province as ' ' from dpl11294
search c_date_time as ' ' from dpl11294
search c_phone_prefix as ' ' from dpl11294
search a_zero as ' ' from dpl11294