继续深入学习sqlite3的使用! 用了两种循环实现,第一种比较笨,第二种我比较喜欢,谨记! #!/usr/bin/env python #coding=utf-8 """ 程序说明: 如何将一个文本文件user.txt(内容如下) id|name|desc 1|xiaofang|hello 2|xiaoming|hhh 导入到一张数据库表中 csdn地址:http://topic.csdn.net/u/20100521/20/681a8d5c-e498-4637-aac1-f0638831d514.html?8042 """ import os import sqlite3 as db #函数定义处: def main(): s1 = s2 = s3 = '' if os.path.exists("123.txt"): #判断文本文件是否存在 conn = db.connect("mydb.db") cur = conn.cursor() try:#判断表txtdb是否存在,不存在就创建该表 cur.execute("""create table txtdb( id integer, name text, desc text)""") except: pass fi = open("123.txt",'r') """ #解题思路二 >>> fi = open("123.txt") >>> line = fi.next() >>> while 1: s1,s2,s3 = line.split("|") try: line = fi.next() print s1,s2,s3[:-1] except: print s1,s2,s3 break """ line = fi.next() while 1: s1,s2,s3 = line.split("|") try: line = fi.next() cur.execute("insert into txtdb values(?,?,?)",(int(s1),s2,s3[:-1])) except: cur.execute("insert into txtdb values(?,?,?)",(int(s1),s2,s3)) break """ #解题思路一 while 1: try: if (s1 != '')and(s2 != '')and(s3 != ''): cur.execute("insert into txtdb values(?,?,?)",(int(s1),s2,s3[:-1])) s1,s2,s3 = fi.next().split("|") except: cur.execute("delete from txtdb where desc=:strs",{"strs":s3[:-1]}) cur.execute("insert into txtdb values(?,?,?)",(int(s1),s2,s3)) break """ conn.commit() fi.close() print "数据转换成功!" if __name__=="__main__": #程序主控区 main() #os.system('pause')