我正在尝试编写一个脚本,该脚本使用以下格式存储的项目生成排序列表:
&安培;&安培;
任务:
项目:
背景:
DUE_DATE:
COMPLETION_DATE:
优先级:
%%
我非常清楚我正在尝试做的事情背后的逻辑,但我对Python很陌生,所以我正在努力实现。这是我到目前为止所做的:
import sys
import getopt
#add function
if sys.argv[1] == 'add':
try:
f = open("todo.txt", "added")
try:
f.write("TASK:" + sys.argv[2] + "\n")
project = raw_input("Please enter the project: ")
f.write("PROJECT:" + project + "\n")
context = raw_input("Please enter the context: ")
f.write("CONTEXT:" + context + "\n")
duedate = raw_input("Please enter the due date: ")
f.write("DUE_DATE:" + duedate + "\n")
completiondate = raw_input("Please enter the completion date: ")
f.write("COMPLETEION_DATE:" + completiondate + "\n")
priority = raw_input("Please enter the priority level")
f.write("PRIORITY:" + priority + "\n")
finally:
f.close()
except IOError:
pass
#list function
if sys.argv[1] == 'list':
listnum = 1
try:
with open("todo.txt", "r") as f:
searchlines = f.readlines()
for i, line in enumerate(searchlines):
if "TASK:" in line:
for l in searchlines[i:i+3]:
print listnum, l[5:],
listnum += listnum
except IOError:
pass
#complete function
if sys.argv[1] == 'complete':
listName.pop(args[0]-1);#this pops it out and deletes it. need to sort into order and from that list. delete that item
#by popping and it will be the -1 of the one from the list.
现在,我的添加功能正常。我知道argeparse(sp?)会让我用一行添加所有元数据,但我想我会尽可能地保持它。我的列表功能目前只根据文件中的顺序列出所有项目,但它没有任何类型的过滤功能。它也不会在TASK下面显示元数据:行。
我想对list函数做的是让默认操作根据优先级对文本文件中的所有项进行排序。我想在同一行中接受其他搜索“标签”,并让list函数生成一个TASKS列表:谁拥有与任何搜索标签匹配的任意数量的元数据,我希望过滤列表也是根据优先顺序排序。
我在想的是使用字母标签作为优先级(A,B等)并遍历文件中的每个条目。然后,我会将任务名称和所有元数据与每个过滤器标记进行比较。如果匹配发生,我将检查优先级,并在优先级为“A”时显示该条目。如果优先级不是“A”,但匹配发生,我会将某种bool标志变为1,让我知道程序需要在寻找下一级优先级时再次遍历列表。
我不知道该怎么做的事情:
感谢您提供任何帮助!