I’m writing a simple program in Python 2.7 using pycURL library to submit file contents to pastebin.
Here’s the code of the program:
#!/usr/bin/env python2
import pycurl, os
def send(file):
print "Sending file to pastebin...."
curl = pycurl.Curl()
curl.setopt(pycurl.URL, "http://pastebin.com/api_public.php")
curl.setopt(pycurl.POST, True)
curl.setopt(pycurl.POSTFIELDS, "paste_code=%s" % file)
curl.setopt(pycurl.NOPROGRESS, True)
curl.perform()
def main():
content = raw_input("Provide the FULL path to the file: ")
open = file(content, 'r')
send(open.readlines())
return 0
main()
The output pastebin looks like standard Python list: ['string\n', 'line of text\n', ...] etc.
Is there any way I could format it so it looks better and it’s actually human-readable? Also, I would be very happy if someone could tell me how to use multiple data inputs in POSTFIELDS. Pastebin API uses paste_code as its main data input, but it can use optional things like paste_name that sets the name of the upload or paste_private that sets it private.
When reading files, use the
withstatement (this makes sure your file gets closed properly if something goes wrong).There’s no need to be having a
mainfunction and then calling it. Use theif __name__ == "__main__"construct to have your script run automagically when called (unless when importing this as a module).For posting multiple values, you can manually build the url: just seperate different key, value pairs with an ampersand (
&). Like this:key1=value1&key2=value2. Or you can build one withurllib.urlencode(as others suggested).EDIT: using
urllib.urlencodeon strings which are to be posted makes sure content is encoded properly when your source string contains some funny / reserved / unusual characters.