For 循环在终端中打印而不是在 excel 文件中打印
For loop prints in terminal instead Of in excel file
让我先声明一下:我在 python 方面很糟糕,但我愿意学习。
我正在尝试创建一个 python 脚本,该脚本为现有 excel 文件中的 33 个人创建用户名和密码(names.xslx).但是每当我尝试导入用户名时,它们都会在终端而不是 excel 文件中打印。
我试过在网上寻找解决方案,但一直没找到。我也尝试像这样手动输入每个用户名:
ws['E2'] = (username(5))
ws['E3'] = (username(5))
等..有效,但它占用了 30 行并且太耗时了,所以我尝试创建一个循环但它不起作用...
1 import random
2 import string
3 from openpyxl import workbook
4 from openpyxl import load_workbook
5
6 wb = load_workbook('names.xlsx')
7 ws = wb.active
8
9 def password(stringLength=8):
10 lettersAndDigits = string.ascii_letters + string.digits
11 return ''.join(random.choice(lettersAndDigits) for i in range(stringLength))
12
13 def username(stringLength=5):
14 lettersAndDigits = string.ascii_letters + string.digits
15 return ''.join(random.choice(lettersAndDigits) for i in range(stringLength))
16
17 cell_range =ws["E2":"E34"]
18 cell_range2 =ws["F2":"F34"]
19
20 for row in ws.iter_rows(min_row=2, max_col=5, max_row=34):
21 for cell in row:
22 print(username(5))
23
24 for row in ws.iter_rows(min_row=2, max_col=6, max_row=34):
25 for cell in row:
26 print(password(8))
27
28 wb.save('names_mod.xlsx')
我希望在 names_mod.xsl 文件中打印出用户名,但所有用户名都像这样打印在终端中:
wFcDK
vJuuD
G1vXj
xBuNbD4s
OnG5kBJK
CkjEPUs2
bSY0mByj
等..请帮忙!
您不需要使用 print
。
您需要在单元格中写入值
像这样:
for cell in row:
cell.value = username(5)
如果需要在第5列写用户名和[=,则添加min_col参数19=]密码 第 6 列
for row in ws.iter_rows(min_row=2, min_col=5, max_col=5, max_row=34):
for cell in row:
cell.value = username(5)
for row in ws.iter_rows(min_row=2, min_col=6, max_col=6, max_row=34):
for cell in row:
cell.value = password(8)
让我先声明一下:我在 python 方面很糟糕,但我愿意学习。 我正在尝试创建一个 python 脚本,该脚本为现有 excel 文件中的 33 个人创建用户名和密码(names.xslx).但是每当我尝试导入用户名时,它们都会在终端而不是 excel 文件中打印。
我试过在网上寻找解决方案,但一直没找到。我也尝试像这样手动输入每个用户名:
ws['E2'] = (username(5))
ws['E3'] = (username(5))
等..有效,但它占用了 30 行并且太耗时了,所以我尝试创建一个循环但它不起作用...
1 import random
2 import string
3 from openpyxl import workbook
4 from openpyxl import load_workbook
5
6 wb = load_workbook('names.xlsx')
7 ws = wb.active
8
9 def password(stringLength=8):
10 lettersAndDigits = string.ascii_letters + string.digits
11 return ''.join(random.choice(lettersAndDigits) for i in range(stringLength))
12
13 def username(stringLength=5):
14 lettersAndDigits = string.ascii_letters + string.digits
15 return ''.join(random.choice(lettersAndDigits) for i in range(stringLength))
16
17 cell_range =ws["E2":"E34"]
18 cell_range2 =ws["F2":"F34"]
19
20 for row in ws.iter_rows(min_row=2, max_col=5, max_row=34):
21 for cell in row:
22 print(username(5))
23
24 for row in ws.iter_rows(min_row=2, max_col=6, max_row=34):
25 for cell in row:
26 print(password(8))
27
28 wb.save('names_mod.xlsx')
我希望在 names_mod.xsl 文件中打印出用户名,但所有用户名都像这样打印在终端中:
wFcDK
vJuuD
G1vXj
xBuNbD4s
OnG5kBJK
CkjEPUs2
bSY0mByj
等..请帮忙!
您不需要使用 print
。
您需要在单元格中写入值
像这样:
for cell in row:
cell.value = username(5)
如果需要在第5列写用户名和[=,则添加min_col参数19=]密码 第 6 列
for row in ws.iter_rows(min_row=2, min_col=5, max_col=5, max_row=34):
for cell in row:
cell.value = username(5)
for row in ws.iter_rows(min_row=2, min_col=6, max_col=6, max_row=34):
for cell in row:
cell.value = password(8)