如何解决Python,在Excel工作表中搜索列中的特定字符串,然后将这些行提取到文本文件中
这应该工作。如果不使用列表或其他某种数据类型,则无法将5个字符串分配给单个变量。但是,您可以检查第三个单元格的值(i [2]-此处)是否等于要查找的任何字符串(“ string1”-“ string5”-此处)。
import xlrd
sheet_data = []
wb = xlrd.open_workbook(Path_to_xlsx)
p = wb.sheet_names()
for y in p:
sh = wb.sheet_by_name(y)
for rownum in xrange(sh.nrows):
sheet_data.append((sh.row_values(rownum)))
found_list = []
rows_to_be_saved = []
for i in sheet_data:
if i[2] == "string1" or i[2] == "string2" or i[2] == "string3" or i[2] == "string4" or i[2] == "string5":
found_list.append(i)
else:
rows_to_be_saved.append(i)
text_file = open("Output.txt", "w")
text_file.write(found_list)
text_file.close()
写入文本文件“ Output.txt”的输出将以逗号分隔,因为您的excel中的行将作为列表中的元组读入python。
解决方法
这是我从其他帖子中得出的科学代码,
import xlrd
import os.path
wb = xlrd.open_workbook(os.path.join('D:\Data','SPS1 demo data.xlsx'))
wb.sheet_names()
sh = #?
Strings=#variables
i = 1
file = open("Output.txt","w")
while sh.cell(i,3).value = (Strings):
file.write(#row)
i = i + 1
file.close
它还不完整,但是我要完成的是在第3列(或整个工作表,没关系)中搜索5个特定的字符串,并将这些行逐行输出到文本文件中,如果可能的话,将csv格式化为逗号每个值之间。
如何将变量设置为5个可能的字符串?这需要一个数组吗?
我认为我在这里编写的方式每次都会覆盖文本文件,而不是附加文本,对吗?如果是的话,正确的函数是“ file.append(#stuff)”吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。