現在のファイルsomescript.sql'
を読み取りモードで開くことができます。各行を読み取って処理します。たとえば、列名がある場合は、最初に大文字にし、スペースを _ に置き換えます。これは、正規表現を使用して実行できます。後で、古いファイルを削除し、一時ファイルの名前を古いファイル名に変更できます。
script.py:
import os, re
with open("somescript.sql") as i: # open sql file for reading
with open("temp", "w") as o: # tem file for writing
for l in i: # read line by line
c = re.match(r".*\[(?P<col_name>.*)\].*", l) # use re to find col_name
if c: # if column name found
c = c.group('col_name') # change col name
o.write(l.replace('['+c+']', '['+c.title().replace(' ', '_'))+']')
else: # ^^ col name titled and replace every space by _
o.write(l)
os.remove("somescript.sql") # delete old file
os.rename("temp", "somescript.sql") # rename file
私は次のようにしました.2つのファイルがあります:
answer$ ls
script.py somescript.sql
somescript ファイルは次のとおりです。
answer$ cat somescript.sql
Create Table Data(
[SOME ID] int,
[LAST NAME] varchar(30),
[FIRST NAME] varchar(30),
[TLA THING] smallint,
[TLA THING REMARK] varchar(255)
)
$ python script.py # run script
/answer$ cat somescript.sql
Create Table Data(
[Some_Id] int,
[Last_Name] varchar(30),
[First_Name] varchar(30),
[Tla_Thing] smallint,
[Tla_Thing_Remark] varchar(255)
)
説明する:o.write(l.replace(c, c.title().replace(' ', '_')))
o.write(x)
x
ファイルに文字列を書き込む
l.replace(c, c.title().replace(' ', '_'))
c
列名である最初の引数を 2 番目の引数に置き換えます。2 番目の引数c.title().replace(' ', '_')
にはc
タイトルが付けられ、その後にスペースが に置き換えられ_
ます。