GithubGist は、プライベートまたはパブリックの gist を作成できる場所です。つまり、ファイルをプライベートまたはパブリックに保存できます。プロジェクトの要点を多数作成し、それらのセットをダウンロードしたいというシナリオを想定してみましょう。を使用してそれを行うことができる唯一の方法 GithubGist 個々の Gist を開いて ZIP をダウンロードするか、HTTP または SSH 経由でクローンを作成します。この記事は、上記のタスクをより簡単にすることを目的としています。以下のコマンドを使用すると、パスワードがわかるまで、非公開ユーザーを除く他の Github ユーザーから Gist をダウンロードすることもできます。使用します リクエスト この提案のパッケージ。これは、最小限のコードで HTTP リクエストを送信するための素晴らしいパッケージです。 インストール 1. からパッケージをダウンロードします。 PyPI pip3を使用したターミナル経由 構文: pip3 install requests
注記: To become a root user run the following command: sudo pip3 install requests
Python3 スクリプト スクリプトはオンライン IDE では実行できないため、 ここ to see how it works. Python import requests import os def create_directory(dirname): #Creates a new directory if a directory with dirname does not exist try: os.stat(dirname) except: os.mkdir(dirname) def show(obj): #Displays the items in the obj for i in range(len(obj)): print(str(i)+': '+str(obj[i])) def auth(): #Asks for the user details ask_auth = input('Do you want to download gists from your account ? Type 'yes' or 'no': ') if(ask_auth=='yes'): user = input('Enter your username: ') password = input('Enter your password: ') request = requests.get('https://api.github.com/users/'+user+'/gists' auth=(user password)) elif(ask_auth=='no'): user = input('Enter username: ') request = requests.get('https://api.github.com/users/' +user+'/gists') return [ask_auth user request] def load(request): #Loads the files and the gist urls output = request.text.split('') gist_urls = [] files = [] for item in output: if 'raw_url' in item: gist_urls.append(str(item[11:-1])) if 'filename' in item: files.append(str(item.split(':')[1][2:-1])) return [gist_urls files] def write_gist(filename text): #Writes text(gist) to filename fp = open(filename 'w') fp.write(text) fp.close() def download(permission user request fileno): #Loads and writes all the gists to dirname if(permission == 'yes' or permission == 'no'): gist_urls files = load(request) dirname = user+''s_gists/' create_directory(dirname) if(fileno[1] == 'all'): for i in range(len(gist_urls)): gist = requests.get(gist_urls[i]) write_gist(dirname+files[i] gist.text) else: for i in range(1len(fileno)): gist = requests.get(gist_urls[int(fileno[i])]) write_gist(dirname+files[int(fileno[i])] gist.text) def detailed(urls pos): #Prints out the contents of a file gist = requests.get(urls[int(pos)]) print(gist.text) def main(): #Authenticates and downloads gists according to user's choice #Commands: #show: To show all the available gists with their assigned gistno #download all: To download all the available gists #download gistno(s): To download gist(s) assigned to gistno(s) #detailed gistno: To print content of gist assigned to gistno #exit: To exit the script ask_auth user request = auth() urls files = load(request) try: while(1): command = input('Enter your command: ') if('download' in command): download(ask_auth user request command.split(' ')) elif('detailed' in command): detailed(urls command.split(' ')[1]) elif(command == 'show'): show(files) elif(command == 'exit'): return except: pass if(__name__ == '__main__'): main() 説明 GithubGist API は、各ユーザーに関する情報を https://api.github.com/users/username/gists に保存します。 - 上記の URL に HTTP リクエストを送信して、ユーザーに関する情報を取得します。
- を検索してください raw_url 利用可能なすべての Gist を取得し、それらに関する情報を取得するために HTTP リクエストを送信しました。
- あなたのニーズに合わせて情報を操作しました。