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:选房抽签小工具的更多相关文章

  1. python开发目录合并小工具 PathMerge

    前言 这个程序陆陆续续开发了几天,正好我在学Python,就一边做一边学,倒是学到不少东西. 不得不说python是快速开发的好工具. 程序做了一些改进,这两天又忙着毕设,现在才想起来发到博客上.想想 ...

  2. python 3.6 MJ小工具

    2017.07.14 update 做了个界面,不需要使用cmd命令行+文件路径的方式来使用了: 链接如下: http://www.cnblogs.com/chenyuebai/p/7150382.h ...

  3. 目不识丁的我使用Python编写汉字注音小工具

    一万点暴击伤害 人懒起来太可怕了,放了个十一充分激发了我的惰性.然后公众号就这么停了半个月,好惭愧- 新学期儿子的幼儿园上线了APP,每天作业通过app布置后,家长需要陪着孩子学习,并上传视频才算完成 ...

  4. python转exe的小工具

    其实只是在cxfreeze的基础上加了个壳,做成窗口软件了 使用了pyqt做的界面,软件发布在了开源中国上,可以直接去下面的地址查看 http://git.oschina.net/robocky/py ...

  5. Python: tkinter实例改名小工具

    #!/usr/bin/env python #coding=utf-8 # # 版权所有 2014 yao_yu (http://blog.csdn.net/yao_yu_126) # 本代码以MIT ...

  6. 入坑python 自己写的小工具,纪念一下

    这个程序的功能是可以从表格中读取某一列数据,传到IDs 这一个参数里,然后在url中获取相应的请求值,并打印 import urllib.request import json import xlrd ...

  7. python一些实用的小工具

    1  搭一个简易的本地局域网  python -m http.server 2 获取当前目录下的所有文件名 3 进度条效果 import sys,time for i in range(50): sy ...

  8. python之字符聊天小工具

    server side: # coding: gb2312#socket server端#获取socket构造及常量from socket import *#''代表服务器为localhostmyHo ...

  9. 几个可以提高工作效率的Python内置小工具

    在这篇文章里,我们将会介绍4个Python解释器自身提供的小工具.这些小工具在笔者的日常工作中经常用到,减少了各种时间的浪费,然而,却很容易被大家忽略.每当有新来的同事看到我这么使用时,都忍不住感叹, ...

随机推荐

  1. 查看selinux与关闭方法

    查看当前用户selinux 状态 [root@o- ~]# getenforce Disabled [root@o- ~]# setenforce usage: setenforce [ Enforc ...

  2. Future模式介绍及入门使用

    FutureClient代码实现: package com.hjf.future; public class FutureClient { /** * 请求客户端 * @param queryStr ...

  3. 事件对象的属性,基于jQuery(jquery针对不同浏览器进行了兼容性的封装)

    1. event.type(该方法是获取到事件的类型) $( 'a' ).click( function( event ){ alert( event.type ); //click return f ...

  4. oracle 修改进程

    SQL> show parameter session NAME TYPE VALUE------------------------------------ ----------- ----- ...

  5. Spring Boot的事务管理注解@EnableTransactionManagement的使用

    @EnableTransactionManagement:负责开启springboot 的事物支持,等同于xml配置文件中的 <tx:annotation-driven /> 然后在访问数 ...

  6. mysql-5.7.23-winx64.zip安装教程

    请参考这篇文章:https://www.jianshu.com/p/94647c0c98c4

  7. winform 下载

    方法一: WebClient webClint = new WebClient(); webClint.DownloadFile(下载文件的路径,下载到本地的地址); 方法二:异步 WebClient ...

  8. ssh: connect to host gitlab.alpha.com port 22: Network is unreachable

    在这里只说明我遇到的问题和解决方法,可能并不能解决你遇到的问题: git clone git@gitlab.alpha.com:ipcam/ambarella.gitCloning into 'amb ...

  9. 移动端键盘遮挡input问题

    在开发移动端项目的时候测试提出优化问题,即: input 获取焦点弹出系统虚拟键盘时, input 被键盘遮挡问题(PS:此问题只在安卓手机上有,ios系统是有自动处理的). 解决办法为: 当 inp ...

  10. Oracle使用备忘

    初学Oracle,很多语句记不住,写在这里备忘. 1.查看某表空间的数据文件 select file_name 文件名, tablespace_name 表空间名, bytes 已使用大小M, max ...