今天因为给BeauBeau提供的抽奖号码做SQL文件,一开始收到ZIP文件解开压缩之后被吓到了——29个CSV文件,每个文件保存了1000个奖券ID和号码-_-!
照上次一样,打开每个CSV文件做先做单独的SQL文件,每个SQL中有1000条插入语句,随后将29个文件的所有SQL语句都复制粘贴到同一个总的SQL文件中。
CSV文件中的结构是“ID,NUMBER”的结构,其中ID是7位数字,NUMBER是11位数字。这样用正则式来进行捕捉的时候就比较方便了,在Eclipse的查找/替换功能中所使用的正则式就是“(d{7}),(d{11})”,进行替换的文本内容就是“INSERTINTOcardsVALUES('$1','$2',now());”。使用这种方法对29个CSV文件中的内容进行替换。
所有代码如下:
复制代码 代码如下:
importsys,os
defreadFile(filename):
file=open(filename,"r")
s=file.read().strip()
file.close()
returns
defwriteFile(filename,files):
content=[]
forfinfiles:
print"readingfile'%s'"%f
s=readFile(f)
print"readfile'%s'completed"%f
content.append(s)
print"writingfile'%s'"%filename
file=open(filename,"w")
file.write("n/*-----Thisisaseperatingline.-----*/n".join(content))
file.close()
print"writefile'%s'completed"%filename
filters=['.txt']
fullpath=os.getcwd();
print"openingdirectory:'%s'"%fullpath
sys.path.append(fullpath)
files=os.listdir(fullpath)
files=[fforfinfilesifos.path.splitext(f)[1].lower()infilters]
writeFile("beaunet_be_card.sql",files)
程序的功能很简单,这也是我在Python的道路上迈出的第一步。
有时间的时候重写这段代码,加入正则替换功能