需求:
一、现有250个英语单词按1-300序号分好,需要从中随机选取18个组成一组,总共18组。(只取序号就行)然后将分好的组输出到word里。
二、因为使用者对电脑不熟悉,所以最好能用最简单的方法运行py文件(使用批处理,运行一下批处理文件即可)
思路:
因为只需要随机选取序号就行,可以生成一个列表,里面包含了1到300即可
words = range(1,250)
之后使用python下的win32com模块,将随机选取的序号写到word文件里即可。
win平台下安装win32com模块命令:
pip install pypiwin32
完整代码如下:
import random
import win32com
from win32com.client import Dispatch, constants
import itertools
import random
w = win32com.client.Dispatch('Word.Application')
#后台运行,不显示,不警告
w.Visible = 0
w.DisplayAlerts = 0
doc = w.Documents.Add()
myRange = doc.Range(0,0)
myRange.Style.Font.Name = "宋体"
myRange.Style.Font.Size = "16"
words = range(1,250)
myRange.InsertAfter('第一组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18)) #随机从words中选取18个单词插入到文件
myRange.InsertAfter('\n')
myRange.InsertAfter('第二组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第三组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第四组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第五组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第六组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第七组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第八组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第九组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第十组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第十一组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第十二组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第十三组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第十四组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('\n')
myRange.InsertAfter('第十五组:')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第十六组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第十七组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
myRange.InsertAfter('第十八组:')
myRange.InsertAfter('\n')
myRange.InsertAfter(random.sample(words, 18))
myRange.InsertAfter('\n')
doc.SaveAs(r'D:\d.doc') #最终文件保存在d盘
doc.Close()
w.Quit()
使用批处理文件运行py文件
因为这样写成的脚本需要在shell中运行,对于不熟悉电脑的朋友来说有点难度,所以给出一个批处理文件,只需要双击此文件就可直接生成最终的word文件。
这里,我将python文件命令为2.py,将批处理文件和py文件同时放在桌面,你可以自行修改下面的路径。
批处理文件完整代码如下:
@echo off
C:
cd C:\Users\Administrator\Desktop
start python 2.py
exit
最终效果如图: