我是一个编程新手,我的一半问题是我找不到合适的问题要问 - 我已经看了很多Stack Overflow帖子试图解决我的问题,但是我没能做到应用我发现的情况。因此,我需要你的帮助,互联网。
我正在尝试使用Windows Scheduler创建一个每周运行一次的程序。当它运行时,它应该:
我已经 SMTP 工作正常,包括表单电子邮件生成器,我可以使用 openpyxl 从excel表中获取统计信息,但我无法摔跤将信息转换为可用的格式发送。
到目前为止我已经获得的代码(用于处理该信息)如下所示:
# Open stats sheet
wb = openpyxl.load_workbook('Stats.xlsx')
sheet = wb.get_sheet_by_name('DATA')
# Get the author, title and price of last forty sales
ultimateRow = sheet.max_row + 1
limitRow = sheet.max_row - 40
recentList = []
for row in range(limitRow, ultimateRow):
recentSales = []
for column in 'GHI':
cell_name = '{}{}'.format(column, row)
recentSales.append(sheet[cell_name].value)
recentList.append(recentSales)
print(*recentList)
我从中得到的是一大堆文字,如下:
['DEIGHTON,Len(生于1929年)。','Twinkle Twinkle Little Spy。',20] ['BROOKE,Rupert(1887-1915); ABERCROMBIE,Lascelles(1881-1938); DRINKWATER,约翰(1882-1937); GIBSON,Wilfrid Wilson(1878-1962)。','New Numbers Volume 1 Number 3.',76] ['SHUTE,Nevil。','A Town Like Alice。',100] ['SWINBURNE,Algernon Charles(1837) -1909)。','意大利之歌。',15]
理想情况下,我希望通过电子邮件发送的内容如下所示,每个销售项目都有一个新行:
DEIGHTON,Len(生于1929年)。 - Twinkle Twinkle Little Spy.- 20
布鲁克,鲁珀特(1887-1915); ABERCROMBIE,Lascelles(1881-1938); DRINKWATER,约翰(1882-1937); GIBSON,Wilfrid Wilson(1878-1962) - 新号码第1卷第3期 - 76
我写了一个电子邮件正文,其设置包含使用以下格式的信息列表:
body = ''' This is an email. Here's the list: {}'''.format(list)
任何关于上面无疑可怕的代码的指针都会感激不尽。
答案 0 :(得分:0)
for ls in recentList:
line = " - ".join([str(x) for x in ls])
print(line + "\n")
答案 1 :(得分:0)
正如其他人所说,使用加入。
你可以代替
[1, 2, 3]
class ArrayList1_groovyProxy
做类似的事情:
recentList.append(recentSales)
这将导致recentList.append(' '.join([str(x) for x in recentSales)
中格式良好的字符串列表。
生成您的电子邮件正文的行可能是:
recentList
答案 2 :(得分:-1)
我相信这样的事情会产生你需要的东西。
for ls in recentList:
line = " ".join([str(x) for x in ls])
print(line + "\n")