2014-03-04 55 views
0

我似乎無法找到關於如何使用graphviz的任何指令。我有python webcrawler代碼,它輸出一個網站列表,我想改變打印的格式,但不知道如何使graphviz可讀。如果任何人都可以指出我正確的方向,提供任何提示,或者將我鏈接到任何python - > graphviz教程或指令,我將不勝感激。如何將python代碼轉換爲graphviz的格式

{ 'www.google.com':{ 'news.google.com', 'play.google.com','時 「www.google.com」 被作爲ARG傳遞

輸出www.youtube.com','mail.google.com','maps.google.com','plus.google.com','drive.google.com','accounts.google.com'}}

+0

我不確定需要如何編輯才能使用graphviz,這是我的問題的一部分。首先,我無法找到有關如何使用graphviz的任何幫助。但我編輯的問題包括樣本輸出,好主意。 – user3345626

回答

0

我不完全清楚你想在這個應用程序中使用GraphViz。然而,鑑於你描述一個字典,你就可以生產GraphViz的腳本如下以繪製:

gr = {'www.google.com': ['news.google.com', 'play.google.com', 'www.youtube.com', 
     'mail.google.com', 'maps.google.com', 'plus.google.com', 
     'drive.google.com','accounts.google.com']} 

print ("digraph G {\nrankdir=LR;") 
n = 0 
lookup = {} 
for root in gr.keys(): 
    if not (root in lookup): 
     lookup[root] = n 
     print ('n%d [label="%s"];' % (n,root)) 
     n += 1 
    for leaf in gr[root]: 
     if not (leaf in lookup): 
      lookup[leaf] = n 
      print ('n%d [label="%s"];' % (n,leaf)) 
      n += 1 
     print ('n%d -> n%d;' % (lookup[root],lookup[leaf])) 

print ("}") 

當通過dot運行,從這個Python腳本輸出爲您提供:

enter image description here