8

I must have skipped a page or two by accident during my PDF Tutorials on Python commands and arguments, because I somehow cannot find a way to take user input and shove it into a file. Don't tell me to try and find solutions online, because I did. None made sense to me.

EDIT: I am using Python 3.1.2, sorry for forgetting

0

4 Answers 4

9

Solution for Python 3.1 and up:

filename = input("filename: ")
with open(filename, "w") as f:
  f.write(input())

This asks the user for a filename and opens it for writing. Then everything until the next return is written into that file. The "with... as" statement closes the file automatically.

Sign up to request clarification or add additional context in comments.

3 Comments

Thanks a bunch, you really helped me. I was making a command-line and i wanted users to change their username and password from the regular "root" and "alpine".
Just in case you don't already know it: docs.python.org/py3k/library/getpass.html
well, I want to stick to my plan, I already spent quite a lot of hours making it, it will be up on my website soon for developers. Thanks for the link though!
5

Solution for Python 2

Use raw_input() to take user input. Open a file using open() and use write() to write into a file.

something like:

fd = open(filename,"w")
input = raw_input("user input")
fd.write(input)

4 Comments

Thanks, but I am using Python 3.1.2, and raw_input unfortunately got thrown out >> still works with Python 2 though! Thanks!
@Galilsnap: in python 3, input() is the equivalent of raw_input()
@Nas Banov: Technically, no. raw_input sends the input right back to the user, or in this case, the variable
stackoverflow.com/a/30991566/4440053 raw_input() was renamed to input(). Old py2 input() tried to resolve the input, returning an int if possible, as an example. py3 input() = py2 raw_input() always returns the string (in the default encoding, unless stated).
1

Try Something Like This.

#Getting Where To Save File
where = raw_input('Where Do You Want To Save Your File? ')

#Getting What To Write To File
text = raw_input('What Do You Want To Write To Your File? ')

#Actually Writing It
saveFile = open(where, 'w')
saveFile.write(text)
saveFile.close()

Comments

0

Try this out as this also places your input lines each on a new line.

filename = "temp.txt"
with open(filename, "w") as f:
  while True:
      try:
          f.write(input())
          f.write("\n")
      except EOFError:
          break

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.