我创建了简单的代码来查找驱动器上的所有文件并将结果插入表中。但是,当它尝试插入而不是在表中插入值 y:\somedir\file.txt 时,代码会插入 y:somedirfile.txt。
如何从目录中插入和保留反斜杠?
贝娄,我使用的代码:
#!/usr/bin/env python
import time
import datetime
import re
import MySQLdb
import sys
import fnmatch
import os
def insert_db(sql):
conn = None
conn = MySQLdb.connect(host='somehost', db='somedb',
user='someuser', passwd='somepass',
)
try:
cursor = conn.cursor()
cursor.execute(sql)
conn.commit()
cursor.close()
except MySQLdb.Error, e:
conn.rollback()
print "Error "
print e.args
sys.exit(1)
def read_file():
matches = []
for root, dirnames, filenames in os.walk('y:\\'):
for loop in fnmatch.filter(filenames, '*.*'):
Values = dict()
filename = os.path.join(root, loop)
(mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(filename)
modtime = datetime.datetime.strptime(time.ctime(mtime), "%a %b %d %H:%M:%S %Y")
fsize = os.stat(filename).st_size
sql ="""insert into pvcs (date,name,size) values ('%(DATE)s',"%(FILE)s",'%(SIZE)s');
""" % {'DATE':modtime,'FILE':filename,'SIZE':fsize}
insert_db(sql)
#print sql
#time.sleep(5)
示例输出:
insert into pvcs (date,name,size) values ('2013-05-30 17:08:12',"y:\somedir\change.log",'2196815');
提前致谢