2017-10-20 6 views
2

私のプロジェクトのすべてのURLを与えるコマンドが1つあります。そして、私はxlsxファイルにこのコマンドをエクスポートしたいと思います。何か案は?印刷のメッセージでは、URLのコマンドでなければなりませんPython URLコマンドを.xlsxファイルにエクスポートする

おかげで先生。

urls.py(すべてのURLを与えるここでコマンド)

from django.conf.urls import RegexURLPattern, RegexURLResolver 
from django.core import urlresolvers 
from django.core.management import BaseCommand 


class Command(BaseCommand): 
    def add_arguments(self, parser): 

     pass 

    def handle(self, *args, **kwargs): 

     urls = urlresolvers.get_resolver() 
     all_urls = list() 

     def func_for_sorting(i): 
      if i.name is None: 
       i.name = '' 
      return i.name 

     def show_urls(urls): 
      for url in urls.url_patterns: 
       if isinstance(url, RegexURLResolver): 
        show_urls(url) 
       elif isinstance(url, RegexURLPattern): 
        all_urls.append(url) 

     show_urls(urls) 

     all_urls.sort(key=func_for_sorting, reverse=False) 
     print('Total urls:', len(all_urls)) 
     print('-' * 220) 
     for url in all_urls: 
      print('| {0.regex.pattern:100} | {0.name:50} | {0.lookup_str:70} |'.format(url)) 
     print('-' * 220) 

export_test.py(Exportコマンド)

import xlsxwriter 

# Create a workbook and add a worksheet 
workbook = xlsxwriter.Workbook('Test2.xlsx') 
worksheet = workbook.add_worksheet() 

# Add a bold format 

bold = workbook.add_format({'bold': True}) 
# Write header 

worksheet.write('A1', 'URL', bold) 
worksheet.write('B1', 'Class', bold) 


expanses = (
    ['TestUrl.com', 'TestClass'], 
    ['TestUrl2.com', 'ExcelClass'], 
    ['TestUrl3.com', 'OrderClass'], 
    ['TestUrl4.com', 'TransferClass'], 
) 
row = 1 
col = 0 

for item, cost in (expanses): 
    worksheet.write(row, col, item) 
    worksheet.write(row, col + 1, cost) 
    row += 1 

workbook.close() 

私はそれが印刷メッセージであるべきだと思う

+0

あなたは直接あなたのコマンドをCSVファイルに書き込むことができます。なぜなら、同じものをエクスポートするスクリプトが必要なのです。すべてのURLとそれに関連するクラス名を受け取ると、単純に 'https:// docs.python.org/2/library/csv.html'を参照できるcsvライターの問題です。 'xlsxwriter'をインストールする必要はありません –

答えて

2

私はここであなたを誤解しているかもしれませんが、コマンドからxlsxファイルにエクスポートする場合は、t代わりに、xlsxファイルにエクスポートするために、URLを出力する行を置き換えてください。

row = 0 
for url in all_urls: 
    worksheet.write(row, 0, url) 
    row += 1 

(あなたはまた、オープン例えば、export_test.pyから適切な場所にurls.pyファイルにコードのビットを追加し、ブックを閉じ、ワークシートを追加、インポートxlsxwriterする必要があります。)

関連する問題