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

2023-12-12

这是我从其他帖子中弗兰肯斯坦一起编写的代码,

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)”?


这应该有效。如果不使用列表或其他数据类型,则无法将 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。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐