gpt4 book ai didi

python - XLRD 似乎没有在文件中找到我的变量

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:22 27 4
gpt4 key购买 nike

我是 python 的新手,我正在尝试读取 .xls 文件并查看每行的第一列以查看它是否与我的变量匹配。我不确定我做错了什么,希望有人可以帮助我。我的最终目标是找到第一列中以此变量开头的每一行,然后删除其余行或将这些行写入另一个文件。以下是我一直在研究的内容:

import xlrd

file_location = "C:/Users/Administrator/Desktop/Test.xls"
workbook = xlrd.open_workbook(file_location)
sheet = workbook.sheet_by_index(0)

mid=5348120284087186

for row in range (sheet.nrows):
var1=''+sheet.cell_value(row, 0)
if var1==mid:
for col in range(sheet.ncols):
print sheet.cell_value(row, col)

这就是我一直用来尝试测试以查看它是否可以最初找到与 ID 匹配的行的方法。一位 friend 建议使用 var1 语法将 cell_value 欺骗为字符串。我可以查看 xls 文件并知道变量存在于多行中,但这不会产生任何结果。我还尝试了一种更简单的变体,它只检查变量,然后打印第一个 cell_value,但结果仍然没有输出。预先感谢您的任何见解

编辑:

按照建议,我将递归调整为我理解的需要更改为:

for row in range (sheet.nrows):
var1=str(sheet.cell_value(row, 0))
if var1==str(mid):
for col in range(sheet.ncols):
print sheet.cell_value(row, col)

但是,这仍然导致测试时 IDLE 没有输出

最佳答案

你说

var1 syntax was suggested by a friend to cheat the cell_value into a string.

这意味着 var1 是字符串类型。

但是,您将其与 mid 进行比较,后者不是字符串类型。因此 var1 == mid 将始终评估为 false。在比较之前确保变量的类型相同。

此外,您对 var1 使用的语法是严重。如果您确实想要其中的字符串,只需使用 var1 = str(sheet.cell_value(row, 0))

以下方法可以极大地帮助解决此类问题:

for row in range (sheet.nrows):
var1=str(sheet.cell_value(row, 0))

print mid, var1, mid==var1, type(mid), type(var1)

if var1==str(mid):

如果您担心多余的空间,请这样做

var1 = str(sheet.cell_value(row,0)).strip()

关于python - XLRD 似乎没有在文件中找到我的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36577462/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com