【问题标题】:Python script that runs in all excel rows在所有 excel 行中运行的 Python 脚本
【发布时间】:2021-03-23 23:38:09
【问题描述】:

我需要编写一个脚本,它将获取 excel 文件中每个参数的值(数据、时间、名称)并将值放入变量中。

例如:(我无法上传图片,所以我会尝试将其像文件一样写在这里)

         Date   Time  Name
row 1    04-Apr 12:00 Johny

row 2    04-Apr 18:00 Paul

row 3    05-Apr 10:00 Mark

我希望脚本获取 "Date:04-Apr" 、 "Time:12:00" 、 "Name:Johny" 的值,并将值放入变量中。

我尝试了以下方法:

from xlrd import open_workbook

class Alns(object):
    def __init__(self, Date, Time, Who):
      self.Date = Date
      self.Time = Time
      self.Who = Who
    def lstfunc(self):
      return[self.Date, self.Time, self.Who]

wb = open_workbook('bonvos.xlsx')
for sheet in wb.sheets():
number_of_rows = sheet.nrows
number_of_columns = sheet.ncols

items = []

rows = []
for row in range(1, number_of_rows):
    values = []
    for col in range(number_of_columns):
        value  = (sheet.cell(row,col).value)
        values.append(value)
    item = Alns(*values)
    items.append(item)

for item in items:
    print(item)

我尝试为每一行返回一个列表,但我收到的是内存地址输出而不是值。

脚本需要逐行运行,每行之后都会打印“日期是:时间是:名称是:”

例如:

对于第 1 行: "日期:04-Apr 时间:12:00 姓名:Johny"

对于第 2 行,对于第 3 行,等等。

【问题讨论】:

  • 我认为您的问题不符合 StackOverflow 问题的标准。您可以查看那里 (stackoverflow.com/help/how-to-ask) 以了解如何提出一个好问题。请证明您已尝试解决该问题并将您的尝试提供给我们。
  • 您可以将您的 excel 作为数据框打开并使用 iterrows 函数遍历行。
  • 正如@Jao 所说,您尝试了什么?
  • 嗨,对不起,我已经更新了问题,希望你们能帮助我

标签: python python-3.x


【解决方案1】:

你想打印对象本身,所以你使用了默认的object.__repr__(obj)

您必须将代码的最后一部分更改为:

for item in items:
    print('Date is:%s Time is:%s Who is:%s'%tuple(item.lstfunc()))

或者您可以覆盖__repr__ 方法:

    def __repr__(self):
      return 'Date is:%s Time is:%s Who is:%s'%(self.Date, self.Time, self.Who)

【讨论】:

  • 谢谢,但我想将每个参数放入一个变量中,并且不仅仅用于打印。
  • 你可以简单地做到这一点。例如。 item.Date 指的是 item 的 Date 字段。
  • 你使用成功了吗?您也可以使用例如date, time, who = item.lstfunc() 在你的循环中,所以日期、时间和谁将是局部变量。
猜你喜欢
  • 1970-01-01
  • 2012-11-15
  • 2023-03-23
  • 1970-01-01
  • 2018-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多