从Excel工作表读取数据并构buildSQL语句,使用Python编写输出文件

我有一本excel书和几张纸。 每张表都有两个PersonIDLegacyID列。 我们基本上是基于personid来更新数据库中的一些logging。 这样做TSQL相对容易,我甚至可以在PowerShell中很快完成它,但是由于我一直在学习Python,所以我想我会在Python中试试这个。 我用xlrd模块,我能够打印更新报表。 下面是我的代码:

 import xlrd book = xlrd.open_workbook('D:\Scripts\UpdateID01.xls') sheet = book.sheet_by_index(0) myList = [] for i in range(sheet.nrows): myList.append(sheet.row_values(i)) outFile = open('D:\Scripts\update.txt', 'wb') for i in myList: outFile.write("\nUPDATE PERSON SET LegacyID = " + "'" + str(i[1]) + "'" + " WHERE personid = " + "'" + str(i[0]) + "'") 

两个问题 – 当我读取输出文件,我看到LegacyID打印为浮动。 我如何摆脱每个ID结束时的.0 ? 第二个问题,python不会在输出文本文件的新行中打印每个更新语句。 如何格式化?

编辑 :请忽略格式问题。 当我用Notepad ++打开输出文件时,它确实打印了新行。 浮动问题仍然存在。

你可以把LegacyID转换成整数吗?

我[1] = int(i [1])

outFile.write(“\ nUPDATE PERSON SET LegacyID =”+“'”+ str(i [1])+“'”+“WHERE personid =”+“'”+ str(i [0])+“'” )

尝试这个..

 # use 'a' if you want to append in your text file outFile = open(r'D:\Scripts\update.txt', 'a') for i in myList: outFile.write("\nUPDATE PERSON SET LegacyID = '%s' WHERE personid = '%s'" %( int(i[1]), str(i[0]))) 

由于您正在学习Python(这是非常值得赞美的!),您应该开始阅读关于Python文档中的string格式 。 无论何时您有任何问题,这都是最好的开始。

提示:您可能需要使用int()将浮点项转换为整数。