2016-06-20 3 views
0

だから私はそれが現時点でoverrustlelogs.netをループして連結するログファイル

から特定のtwitch.tvチャネルのための彼らのログをリッピングするユーザ名をユーザに要求されます小さなPythonスクリプトを持っている私はちょうどログURLをyとして

http://overrustlelogs.net/Channel%20chatlog/MonthName%20Year/user.txt

months = ['September','October','November','December','January','February','March','April','May','June','July','August','September','October','November','December','January','February','March','April','May','June','July','August'] 
years = ['2014','2014','2014','2014','2015','2015','2015','2015','2015','2015','2015','2015','2015','2015','2015','2015','2016','2016','2016','2016','2016','2016','2016','2016'] 

の形式をとるので2つのリスト、年の数ヶ月一対一を持っています私はforループを使う方法を見ることができ、毎月リストを手作業で編集する必要があるので、各ループのインデックスを取るのはかなりばかげている。

これを行うにはどのような方法が良いですか? 2014年9月から現在の月と年にログをダウンロードするようにします

+0

これは機能するものではありません。私は – Cherona

+1

の形式をとっているので、「t0からt1までの毎月と毎年のリストをどのように生成できますか? 't0 = sep/14'と' t1 = jun/16' ...あなたのタイトルを編集する必要があります –

+0

* 'rip' *ログは*それらを '破棄'することを意味しますか? –

答えて

0

ここには簡単なスクリプトがあります。

  1. datetime.timedelta()を使用して特定の日付間の日数のリストを作成します。

  2. そして、それが唯一の月名と年(%B-%Y

  3. を使用して、これらの日の形式と最後にt0t1間の計算日をループしながらif not in条件を使用して重複を削除します。


コード:

t0 = '21-06-2014' 
t1 = '07-01-2016' 

#formatting in the proper way to use timedelta() 
start = datetime.datetime.strptime(t0, "%d-%m-%Y") 
end = datetime.datetime.strptime(t1, "%d-%m-%Y") 

#generating dates using list comprehension and timedelta() 
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end-start).days)] 

#removing duplicates using loop and 'if not in' 
dates = [] 

for date in date_generated: 
    s = str(date.strftime("%B-%Y")) 
    if s not in dates: 
     dates.append(s) 

#printing dates  
for date in dates: 
    print date 

出力:datesリスト世代で

June-2014 
July-2014 
August-2014 
September-2014 
October-2014 
November-2014 
December-2014 
January-2015 
February-2015 
March-2015 
April-2015 
May-2015 
June-2015 
July-2015 
August-2015 
September-2015 
October-2015 
November-2015 
December-2015 
January-2016 

for date in dates: 
    MonthName = date.split('-')[0] 
    Year = date.split('-')[1] 
    url = 'http://overrustlelogs.net/Channel%20chatlog/' + MonthName + '%20' + Year + '/user.txt' 
    print url 

出力:erated、私たちは今使用してURLを作成することも別にdatetimeモジュールから

http://overrustlelogs.net/Channel%20chatlog/June%202014/user.txt 
http://overrustlelogs.net/Channel%20chatlog/July%202014/user.txt 
http://overrustlelogs.net/Channel%20chatlog/August%202014/user.txt 
http://overrustlelogs.net/Channel%20chatlog/September%202014/user.txt 
http://overrustlelogs.net/Channel%20chatlog/October%202014/user.txt 
http://overrustlelogs.net/Channel%20chatlog/November%202014/user.txt 
http://overrustlelogs.net/Channel%20chatlog/December%202014/user.txt 
http://overrustlelogs.net/Channel%20chatlog/January%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/February%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/March%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/April%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/May%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/June%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/July%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/August%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/September%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/October%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/November%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/December%202015/user.txt 
http://overrustlelogs.net/Channel%20chatlog/January%202016/user.txt 
0

を、あなたもcalendarモジュールを見てみることができます。しかし、それは数ヶ月にわたって反復する組み込み関数を持っていません。

import calendar 
from collections import namedtuple 

MonthWithYear = namedtuple('MonthWithYear', ['month', 'year']) 

def months_between(since, until): 
    def between_including(array, el1, el2): 
     since = array.index(el1) 
     until = array.index(el2) 
     yield from array[since: until + 1]# *including* last element too 
    months = calendar.month_name 
    if since.year == until.year: 
     for month in between_including(list(months), since.month, until.month): 
      yield MonthWithYear(month, since.year) 
    else: 
     yield from months_between(since, MonthWithYear(months[-1], since.year)) 
     for year in range(since.year + 1, until.year): 
      yield from months_between(MonthWithYear(months[1], year), MonthWithYear(months[-1], year)) 
     yield from months_between(MonthWithYear(months[1], until.year), until) 

since = MonthWithYear('January', 2016) 
until = MonthWithYear('August', 2019) 


for month in months_between(since, until): 
    print(month.month, month.year) 
関連する問題