Det er nemt at downloade hovedpunkter fra Github

GithubGist er et sted, hvor du kan oprette en privat eller en offentlig kerne, dvs. gemme dine filer enten privat eller offentligt. Lad os antage et scenarie, hvor du har skrevet en lang række hovedpunkter til dit projekt, og du vil downloade et sæt af dem. Den eneste måde du kan gøre det ved at bruge GithubGist er at åbne hver enkelt kerne for at downloade ZIP eller klone via HTTP eller SSH. Denne artikel handler om at gøre ovenstående opgave enklere. Ved at bruge kommandoerne nedenfor kan du endda downloade hovedpunkter fra andre github-brugere undtagen de private, indtil du kender deres adgangskode. Vi vil bruge anmodninger pakke til dette forslag. Det er en fantastisk pakke til at sende HTTP-anmodninger med minimal kode. Installation 1. Download pakken fra PyPI via terminal ved hjælp af pip3 Syntaks:
 pip3 install requests    Note:   To become a root user run the following command:  
 sudo pip3 install requests    Python3 script Scriptet kan ikke køre på en online IDE, og derfor kan du klikke her   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  (  1    len  (  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  ()   
Forklaring GithubGist API gemmer oplysninger om hver bruger på https://api.github.com/users/username/gists.
  • Send en HTTP-anmodning til ovenstående url for at hente oplysninger om brugeren.
  • Søg efter rå_url af alle tilgængelige hovedpunkter og sendte HTTP-anmodninger for at hente oplysningerne om dem.
  • Manipulerede informationen til dine behov.