生活中的python-随机分配单词输出至word

需求:

一、现有250个英语单词按1-300序号分好,需要从中随机选取18个组成一组,总共18组。(只取序号就行)然后将分好的组输出到word里。
二、因为使用者对电脑不熟悉,所以最好能用最简单的方法运行py文件(使用批处理,运行一下批处理文件即可)

思路:

因为只需要随机选取序号就行,可以生成一个列表,里面包含了1到300即可

1
words = range(1,250)

之后使用python下的win32com模块,将随机选取的序号写到word文件里即可。

win平台下安装win32com模块命令:

1
pip install pypiwin32

完整代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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文件同时放在桌面,你可以自行修改下面的路径。

批处理文件完整代码如下:

1
2
3
4
5
@echo off  
C:
cd C:\Users\Administrator\Desktop
start python 2.py
exit

最终效果如图:

坚持原创技术分享,您的支持将鼓励我继续创作!