1、房间号和姓名写在house_name.xls的house标签页中
2、运行house.py
3、当前同目录下会生成result.xls,即为结果;程序运行过程中不要打开该文件,运行完成后再打开,否则结果无法写入
4、若要重新生成,重新运行house.py即可,结果会重新生成
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os, shutil, random, sys, json
from os.path import join
from xlrd import open_workbook
from xlutils.copy import copy
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
stdi, stdo, stde = sys.stdin, sys.stdout, sys.stderr
reload(sys)
sys.setdefaultencoding(default_encoding)
sys.stdin, sys.stdout, sys.stderr = stdi, stdo, stde
url_excel_path = 'house_name.xls'
result_excel_path = 'result.xls'
sheet_name = 'house'
class house:
def read_excel(self, sheet_name):
workbook = open_workbook(url_excel_path)
# 读取sheet1表的内容
sheet1_content = workbook.sheet_by_name(sheet_name)
# 获取sheet1表中的行数
row_count = sheet1_content.nrows
# print row_count
# 读取第1列的内容
all_house = sheet1_content.col_values(0)
all_house = json.dumps(all_house)
# 读取第2列的内容
all_name = sheet1_content.col_values(1)
return all_name
def Write_Excel(self, sheetName, rowIndex, lineIndex, content):
"""
- rowIndex:行
- lineIndex:列
"""
if not os.path.exists(result_excel_path):
print "%s not exists" % result_excel_path
shutil.copy(url_excel_path, result_excel_path)
rowIndex = int(rowIndex)
lineIndex = int(lineIndex)
rb = 'r+w'
rb = open_workbook(result_excel_path, 'r')
rbook = open_workbook(result_excel_path, 'w')
wb = copy(rbook)
sheetIndex = rbook.sheet_names().index(sheetName)
wb.get_sheet(int(sheetIndex)).write(int(rowIndex), int(lineIndex), content)
wb.save(result_excel_path)
def random_name(self, sheet_name):
# houselist = self.read_excel(sheet_name)[0]
namelist = self.read_excel(sheet_name)
print "name:%s" % namelist
# 打乱姓名
random.shuffle(namelist)print "new name:%s" % namelist
length = len(namelist)
for i in xrange(length):
print i
print namelist[i]
self.Write_Excel(sheet_name, i, 1, namelist[i])
def check_then_create(self, file_path):
"""
检查文件夹是否存在,不存在则自动创建
"""
isExists = os.path.exists(file_path)
if not isExists:
os.makedirs(file_path)
if __name__ == '__main__':
obj = house()
# obj.read_excel(sheet_name)
obj.random_name(sheet_name)
python开发目录合并小工具 PathMerge