复制粘贴功能的Python程序
程序员文章站
2024-01-27 10:58:46
今天因为给beaubeau提供的抽奖号码做sql文件,一开始收到zip文件解开压缩之后被吓到了——29个csv文件,每个文件保存了1000个奖券id和号码-_-! 照上次一...
今天因为给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})”,进行替换的文本内容就是“insert into cards values ('$1','$2',now());”。使用这种方法对29个csv文件中的内容进行替换。
所有代码如下:
import sys, os
def readfile(filename):
file=open(filename, "r")
s=file.read().strip()
file.close()
return s
def writefile(filename, files):
content=[]
for f in files:
print "reading file ' %s ' " % f
s=readfile(f)
print "read file ' %s ' completed" % f
content.append(s)
print "writing file ' %s ' " % filename
file=open(filename, "w")
file.write("\n/*-----this is a seperating line.-----*/\n".join(content))
file.close()
print "write file ' %s ' completed" % filename
filters=['.txt']
fullpath=os.getcwd();
print "opening directory: ' %s ' " % fullpath
sys.path.append(fullpath)
files = os.listdir(fullpath)
files =[f for f in files if os.path.splitext(f)[1].lower() in filters]
writefile("beaunet_be_card.sql", files)
程序的功能很简单,这也是我在python的道路上迈出的第一步。
有时间的时候重写这段代码,加入正则替换功能
照上次一样,打开每个csv文件做先做单独的sql文件,每个sql中有1000条插入语句,随后将29个文件的所有sql语句都复制粘贴到同一个总的sql文件中。
csv文件中的结构是“id,number”的结构,其中id是7位数字,number是11位数字。这样用正则式来进行捕捉的时候就比较方便了,在eclipse的查找/替换功能中所使用的正则式就是“(\d{7}),(\d{11})”,进行替换的文本内容就是“insert into cards values ('$1','$2',now());”。使用这种方法对29个csv文件中的内容进行替换。
所有代码如下:
复制代码 代码如下:
import sys, os
def readfile(filename):
file=open(filename, "r")
s=file.read().strip()
file.close()
return s
def writefile(filename, files):
content=[]
for f in files:
print "reading file ' %s ' " % f
s=readfile(f)
print "read file ' %s ' completed" % f
content.append(s)
print "writing file ' %s ' " % filename
file=open(filename, "w")
file.write("\n/*-----this is a seperating line.-----*/\n".join(content))
file.close()
print "write file ' %s ' completed" % filename
filters=['.txt']
fullpath=os.getcwd();
print "opening directory: ' %s ' " % fullpath
sys.path.append(fullpath)
files = os.listdir(fullpath)
files =[f for f in files if os.path.splitext(f)[1].lower() in filters]
writefile("beaunet_be_card.sql", files)
有时间的时候重写这段代码,加入正则替换功能