python读取目录 文件夹下所有文件 合并excel文件 - Shuang0420/Shuang0420.github.io GitHub Wiki
在Python中,文件操作主要来自os模块,所以先导入os模块
import os
base_dir = '/Users/sure/RecentTasks/'.decode('utf8')
files = os.listdir(base_dir)
for f in files:
print f
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import os
import MySQLdb
import xlrd
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')
def readExcel(fname):
row_list=[]
sheetname="在线分析明细"
bk = xlrd.open_workbook(fname.decode('utf8'))
shxrange = range(bk.nsheets)
try:
sh = bk.sheet_by_name(sheetname.decode('utf8'))
except:
print "no sheet in %s named Sheet1" % fname
#获取行数
nrows = sh.nrows
#获取列数
ncols = sh.ncols
print "nrows %d, ncols %d" % (nrows,ncols)
#获取第一行第一列数据
#cell_value = sh.cell_value(1,1)
#print cell_value
row_list = []
#获取各行数据
for i in range(1,nrows):
row_data = sh.row_values(i)
row_list.append(row_data)
insertIntoLinyun(row_list)
def connectDb():
global cur,conn
conn= MySQLdb.connect(
host='127.0.0.1',
port = 3306,
user='root',
passwd='',
db ='excel',
charset='utf8',
)
cur = conn.cursor()
cur.execute("USE excel")
def insertIntoLingyun(row_list):
for row in row_list:
if (row[6]=='非业务'):
continue
try:
cur.execute("INSERT IGNORE INTO `Lingyun` VALUES ('" + row[1] + "','"+ row[3] + "','"+ row[4] + "','"+ row[6] + "','" + row[8] + "')")
except:
# Rollback in case there is any error
conn.rollback()
#如果插入数据量比较大(超过100条),可能会丢失数据(可以execute一次就commit一次 或者 execute100次commit就一次)
conn.commit()
if __name__=='__main__':
connectDb()
base_dir = '/Users/sure/RecentTasks/'.decode('utf8')
files = os.listdir(base_dir)
for f in files:
if f.encode('utf8').endswith('xlsx'):
print f
readExcel(f)
os.listdir(dirname)#列出dirname下的目录和文件 os.getcwd()#获得当前工作目录 os.curdir#返回当前目录('.') os.chdir(dirname)#改变工作目录到dirname os.path.isdir(name)#判断name是不是一个目录,name不是目录就返回false os.path.isfile(name)#判断name是不是一个文件,不存在name也返回false os.path.exists(name)#判断是否存在文件或目录name os.path.getsize(name)#获得文件大小,如果name是目录返回0L os.path.abspath(name)#获得绝对路径 os.path.normpath(path)#规范path字符串形式 os.path.split(name)#分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在) os.path.splitext()#分离文件名与扩展名 os.path.join(path,name)#连接目录与文件名或目录 os.path.basename(path)#返回文件名 os.path.dirname(path)#返回文件路径 os.remove(dir) #dir为要删除的文件夹或者文件路径 os.rmdir(path) #path要删除的目录的路径。需要说明的是,使用os.rmdir删除的目录必须为空目录,否则函数出错。 os.path.getmtime(name) #获取文件的修改时间 os.stat(path).st_mtime#获取文件的修改时间 os.stat(path).st_ctime #获取文件修改时间 os.path.getctime(name)#获取文件的创建时间
参考链接 http://blog.csdn.net/w122079514/article/details/16864403