微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python,在Excel工作表中搜索列中的特定字符串,然后将这些行提取到文本文件中

如何解决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 举报,一经查实,本站将立刻删除。