テキストファイルのn行の後にループをトリガーする

ベン・パリー

書き込まれているテキストファイル内で5行しか実行されていない場合に、ループを実行したいと思います。その理由は、テキストファイルの最後の5行から平均を計算したいのですが、プログラムに5つの数値がない場合は、rumtimeエラーがスローされます。

    #Imports
    from bs4 import BeautifulSoup
    from urllib import urlopen
    import time

    #Required Fields
    pageCount = 1290429


    #Loop
    logFile = open("PastWinners.txt", "r+")
    logFile.truncate()
    while(pageCount>0): 
        time.sleep(1)
        html = urlopen('https://www.csgocrash.com/game/1/%s' % (pageCount)).read()
        soup = BeautifulSoup(html, "html.parser")

        try:
            section = soup.find('div', {"class":"row panel radius"})
            crashPoint = section.find("b", text="Crashed At: ").next_sibling.strip()
            logFile.write(crashPoint[0:-1]+"\n")
        except:
            continue

        for i, line in enumerate(logFile):             #After 5 lines, execute this
            if i > 4:
                data = [float(line.rstrip()) for line in logFile]
                print("Average: " + "{0:0.2f}".format(sum(data[-5:])/len(data[-5:])))
            else:
                continue

        print(crashPoint[0:-1])
        pageCount+=1
    logFile.close()

If anyone knows the solution, or knows a better way to go about doing this, it would be helpful, thanks :).

編集:

更新されたコード:

#Imports
from bs4 import BeautifulSoup
from urllib import urlopen
import time

#Required Fields
pageCount = 1290429
lineCount = 0

def FindAverage():
    with open('PastWinners.txt') as logFile:
        data = [float(line.rstrip()) for line in logFile]
        print("Average: " + "{0:0.2f}".format(sum(data[-5:])/len(data[-5:])))

#Loop
logFile = open("PastWinners.txt", "r+")
logFile.truncate()
while(pageCount>0): 
    time.sleep(1)
    html = urlopen('https://www.csgocrash.com/game/1/%s' % (pageCount)).read()
    soup = BeautifulSoup(html, "html.parser")

    if lineCount > 4:
        logFile.close()
        FindAverage()
    else:
        continue

    try:
        section = soup.find('div', {"class":"row panel radius"})
        crashPoint = section.find("b", text="Crashed At: ").next_sibling.strip()
        logFile.write(crashPoint[0:-1]+"\n")
    except:
        continue

    print(crashPoint[0:-1])
    pageCount+=1
    lineCount+=1


logFile.close()

新しい問題:プログラムは期待どおりに実行されますが、平均が計算されて表示されると、プログラムは再びループせず、停止します。5行後に平均を計算して次の数値を表示し、次に新しい平均を表示するなど、機能させたいと思います。

ベン・パリー

最後の問題は、ループが再開せず、最初の平均計算で終了したことでした。これは、logFileが閉じられ、再度開かれなかったことが原因でした。そのため、プログラムはそれを考慮してファイルに追加しましたが、期待どおりに機能します。助けてくれてありがとう。

#Imports
from bs4 import BeautifulSoup
from urllib import urlopen
import time

#Required Fields
pageCount = 1290429
lineCount = 0

def FindAverage():
    with open('PastWinners.txt') as logFile:
        data = [float(line.rstrip()) for line in logFile]
        print("Average: " + "{0:0.2f}".format(sum(data[-5:])/len(data[-5:])))

#Loop
logFile = open("PastWinners.txt", "r+")
logFile.truncate()
while(pageCount>0):
    time.sleep(1)
    html = urlopen('https://www.csgocrash.com/game/1/%s' % (pageCount)).read()
    soup = BeautifulSoup(html, "html.parser")

    try:
        section = soup.find('div', {"class":"row panel radius"})
        crashPoint = section.find("b", text="Crashed At: ").next_sibling.strip()
        logFile.write(crashPoint[0:-1]+"\n")
    except:
        continue

    print(crashPoint[0:-1])
    pageCount+=1
    lineCount+=1

    if lineCount > 4:
        logFile.close()
        FindAverage()
        logFile = open("PastWinners.txt", "a+")
    else:
        continue
logFile.close()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テキストファイルの最後のn行を新しいテキストファイルにコピーするバッチファイル

分類Dev

ユーザー入力に基づいてファイルの最後の行にテキストを挿入するシェルスクリプト

分類Dev

テキストファイルの行にループを作成する

分類Dev

テキストファイルの最後の行の最後の単語を抽出するスクリプト

分類Dev

Forループスルーテキストファイルは最後の行のみを出力します

分類Dev

ラベルコントロールのテキストファイルの最後の行を表示する

分類Dev

バッチファイル-テキストファイルの最初のn行をループします

分類Dev

テキストファイルの行をカテゴリごとのファイルにグループ化する-最も効率的な方法

分類Dev

テキストファイルの内容をループする

分類Dev

遅延のあるループ内のテキストファイルから次々に行を印刷する

分類Dev

テキストファイルを読み取るときに最後のx行をスキップする

分類Dev

ループ内のテキストファイルの最後の行を取得します

分類Dev

いくつかのテキスト行の後にデータがある光沢のあるアプリで.txtファイルを読み取る

分類Dev

テキストファイルに新しい行を生成するエントリの最後のランダムなスペースpython tkinter

分類Dev

リストのリストをテキストファイルにインポートする際の問題

分類Dev

テキストファイルの最初の2行を別のテキストファイルにコピーするバッチファイル

分類Dev

プレーンテキストファイルでコンマの後に新しい行をインデントするvimを停止します

分類Dev

テキストファイルの行のフィールドを抽出する

分類Dev

テキストファイルからグループ内の数行を一緒に選択する

分類Dev

Pythonでn行のグループにテキストファイルの内容をシャッフルする方法

分類Dev

Google Apps Script:スクリプトでテキストファイルのダウンロードをトリガーする

分類Dev

テキストファイルのコンテキストメニューからPythonスクリプトを実行し、他のテキストファイルと比較するにはどうすればよいですか?

分類Dev

テキストファイルのシェルスクリプトをループする

分類Dev

変数の内容をテキストファイルにエコーするバッチスクリプト

分類Dev

シェルスクリプト-行を繰り返さずに2つのテキストファイルをマージする方法

分類Dev

テキスト/プレーンファイルをGoogleドライブからAndroidアプリのローカルファイルにコピーする方法

分類Dev

4つの異なるテキストファイルをループするBASHスクリプト

分類Dev

実行後にスクリプトの出力をファイルに追加する

分類Dev

AWSラムダトリガーをYAMLファイルのAlexaスキルに設定する方法

Related 関連記事

  1. 1

    テキストファイルの最後のn行を新しいテキストファイルにコピーするバッチファイル

  2. 2

    ユーザー入力に基づいてファイルの最後の行にテキストを挿入するシェルスクリプト

  3. 3

    テキストファイルの行にループを作成する

  4. 4

    テキストファイルの最後の行の最後の単語を抽出するスクリプト

  5. 5

    Forループスルーテキストファイルは最後の行のみを出力します

  6. 6

    ラベルコントロールのテキストファイルの最後の行を表示する

  7. 7

    バッチファイル-テキストファイルの最初のn行をループします

  8. 8

    テキストファイルの行をカテゴリごとのファイルにグループ化する-最も効率的な方法

  9. 9

    テキストファイルの内容をループする

  10. 10

    遅延のあるループ内のテキストファイルから次々に行を印刷する

  11. 11

    テキストファイルを読み取るときに最後のx行をスキップする

  12. 12

    ループ内のテキストファイルの最後の行を取得します

  13. 13

    いくつかのテキスト行の後にデータがある光沢のあるアプリで.txtファイルを読み取る

  14. 14

    テキストファイルに新しい行を生成するエントリの最後のランダムなスペースpython tkinter

  15. 15

    リストのリストをテキストファイルにインポートする際の問題

  16. 16

    テキストファイルの最初の2行を別のテキストファイルにコピーするバッチファイル

  17. 17

    プレーンテキストファイルでコンマの後に新しい行をインデントするvimを停止します

  18. 18

    テキストファイルの行のフィールドを抽出する

  19. 19

    テキストファイルからグループ内の数行を一緒に選択する

  20. 20

    Pythonでn行のグループにテキストファイルの内容をシャッフルする方法

  21. 21

    Google Apps Script:スクリプトでテキストファイルのダウンロードをトリガーする

  22. 22

    テキストファイルのコンテキストメニューからPythonスクリプトを実行し、他のテキストファイルと比較するにはどうすればよいですか?

  23. 23

    テキストファイルのシェルスクリプトをループする

  24. 24

    変数の内容をテキストファイルにエコーするバッチスクリプト

  25. 25

    シェルスクリプト-行を繰り返さずに2つのテキストファイルをマージする方法

  26. 26

    テキスト/プレーンファイルをGoogleドライブからAndroidアプリのローカルファイルにコピーする方法

  27. 27

    4つの異なるテキストファイルをループするBASHスクリプト

  28. 28

    実行後にスクリプトの出力をファイルに追加する

  29. 29

    AWSラムダトリガーをYAMLファイルのAlexaスキルに設定する方法

ホットタグ

アーカイブ