【发布时间】:2015-10-19 03:52:57
【问题描述】:
我有一个包含 5 列数据的 .csv 文件。第 5 列是带编号的星期的日期。我想根据当前周数在桌面上的对象中打印其他 4 列数据。例如,第 01 周在第 1 列中有 1,在第 2 列中有 2,在第 3 列中有 3,在第 4 列中有 4。我想在对象中按 1、2、3、4 的顺序打印。一旦第 01 周结束,我希望它更改为第 02 周的数据。在第 1 列中,数据现在是 5,第 2 列现在是 6,依此类推。我一直在尝试找到一个可行的 if 语句,但没有我找到了作品。
我是 python 新手,有一些编码背景。我无法弄清楚正确的 if 语句还是有更好的功能可以使用?谢谢。
这是我目前的位置:
from datetime import date
import wx
app = wx.App()
frame = wx.Frame(None, -1, 'win.py')
frame.Show()
app.MainLoop()
import csv
import time
#----------------------------------------------------------------------
def csv_dict_reader(file_obj):
"""
Read a csv.DictReader
"""
reader = csv.DictReader(file_obj, delimiter=',')
for column in reader:
if(column["Date"])==(time.strftime("%U")):
print(column["Column 1"])
print(column["Column 2"])
print(column["Column 3"])
print(column["Column 4"])
#----------------------------------------------------------------------
if __name__ == "__main__":
with open("data.csv") as f_obj:
csv_dict_reader(f_obj)
我的 .csv 样本是:
Column 1 Column 2 Column 3 Column 4 Date
1 2 3 4 1
5 6 7 8 2
9 10 11 12 3
我想要的输出是: 如果第 1 周打印:
1
2
3
4
如果第 2 周打印:
5
6
7
8
我希望将它们打印在桌面上的一个盒子中。当一周发生变化时,我希望它自动更改为下一周的数据。
谢谢。
sdruch
【问题讨论】:
-
欢迎来到 StackOverflow。请澄清您的问题,尤其是根据stackoverflow.com/help/mcve 的发布指南。除其他事项外,请显示输入文件中的示例数据和所需输出的示例。除此之外,您期望的结果令人困惑:“print”是将数据发送到输出通道的命令; “对象”是您设计的内部数据结构。此外,您声明要按降序打印,但您已经描述了升序。
-
请您编辑您的问题(按
edit按钮)以添加您输入的小样本,以及您的预期输出应该是什么。 -
我添加了一个样本和一个预期的输出。谢谢。
-
那么触发事件是什么,您是否表示当时间日期提前时,您希望检查文件并从文件中提取并显示正确的值。这不是太难,但我认为你需要有两个功能,一个检查日期时间,两个读取文件并拉出正确的行并显示它。我想您需要保留当前的一周,当它发生变化时打开文件并找到适当的值
-
我认为你需要把它分解成块,第一个块是如何判断一周已经改变。第二块是,考虑到一周的变化,我如何从 csv 文件中选择正确的值。我认为以这种方式构建的问题更容易看到 - 如果我对您的问题的解释是正确的
标签: python date csv if-statement