python读取并处理文件以创建字典

时间:2014-03-30 06:19:56

标签: python dictionary

我必须构建一个程序,该程序读取一个文件,其中包含有关文章修订的信息,并从文件中创建两个字典。该程序将忽略所有行,除了" REVISION"线

第一个字典中的每个条目都有一个键,它是一个编辑器,一个值是由该编辑器修改的一组(或列表)文章,即:

{editor: {set of articles revised by editor}}

第二个字典中的每个条目都有一个键,它是一个文章和一个值,它是一个元组(或列表),包含编辑的编辑和修改文章的编辑器(或列表),即:< / p>

{article: (count of edits, {set of editors who revised the article})}

以下是文件中的示例日志条目:

REVISION 4781981 72390319 Steven_Strogatz 2006-08-28T14:11:16Z SmackBot 433328 
CATEGORY American_mathematicians 
IMAGE 
MAIN Boston_University MIT Harvard_University Cornell_University 
TALK 
USER 
USER_TALK 
OTHER De:Steven_Strogatz Es:Steven_Strogatz 
EXTERNAL http://www.edge.org/3rd_culture/bios/strogatz.html 
TEMPLATE Cite_book Cite_book Cite_journal 
COMMENT ISBN formatting &/or general fixes using [[WP:AWB|AWB]] 
MINOR 1 
TEXTDATA 229

一旦我创建了词典,我就必须制作几个处理&#34; TOP n EDITORS&#34;并显示修改了大部分文章的编辑(编辑的用户名和编辑修改的文章数)以及最经常修改的文章等。

这是我到目前为止所做的:

def user_input(editors, articles, filename):
    try:
        file=open(filename)
        count=0
        editors={}
        articles={}
        for line in file:
            record=line.strip().split()
            if record[0]=="REVISION":
                editor_name=record[5]
                article_name=record[3]
                if editor_name not in editors:
                    editors[editor_name]=set({article_name})
                else:
                    editors[editor_name].add({article_name})
                if article_name not in articles:
                    articles[article_name]=set({editor_name})
                    count+=1
                else:
                    articles[article_name].add(editor_name)
       except FileNotFoundError:
           print("file was not found")
           return filename


print("""
Please select one of the following menu options:\n
QUIT
HELP
INPUT filename
TOP n EDITORS
TOP n EDITS
TOP n ARTICLES
""")


command=input("select a menu option: ").split()

if command[0].lower()=="quit":
    exit()

我不知道从哪里开始。任何帮助将不胜感激。

0 个答案:

没有答案