我对python很新,并得到了一个有趣的请求。我有一个结构本身的结果集,但规模更大,包括多个不同的acct。无' S
acct no. date Event
11111111 2012/01/01 1
11111111 2012/01/05 1
我将附加一个辅助日期对象,它将结果集转换为此输出:
acct no. date Event
11111111 2012/01/01 1
11111111 2012/01/02 0
11111111 2012/01/03 0
11111111 2012/01/04 0
11111111 2012/01/05 1
11111111 2012/01/06 0
见下请求:
我被要求建立一个测量两个日期之间距离的脚本,计算差异,天数,如果它落在那个距离内,则生成一个标志。棘手的部分是当有一个新的记录集时,我需要将第一个记录集的结果附加到下一个记录集上,然后继续计算和标记生成。
最终输出应该如下所示:
acct no. date Event Recent
11111111 2012/01/01 1 Y
11111111 2012/01/02 0 Y
11111111 2012/01/03 0 N
11111111 2012/01/04 0 N
11111111 2012/01/05 1 Y
11111111 2012/01/06 0 Y
我在python中仍然相对绿,不能想到从哪里开始。
非常感谢任何帮助。
谢谢,
乔
答案 0 :(得分:0)
从您的问题来看,听起来您可以计算日期差异,并且无法将“最近”标志附加到文件中的每一行。假设您正在从文本文件中读取帐户信息,这里有一些可以帮助您入门的内容。如果您的信息位于名为accounts.txt
的文件中:
import shutil
recentFlag = 'Y' # Example only. It sounds like you have your own way of determining this
filename = 'accounts.txt'
shutil.copy(filename, filename+'~') # Save a backup copy of the file you're editing.
# We will read from this file and write to the original
fIn = open(filename+'~', 'r')
fOut = open(filename, 'w')
header = fIn.readline() # Read the first (header) line from your file, and write it to the output file. If the real file has multiple header lines, loop this
fOut.write(header + '\tRecent')
for line in fIn:
fOut.write(line + '\t' + recentFlag + '\n')
fOut.flush()
fIn.close()
fOut.close()
快乐的编码!