Python, writing an integer to a '.txt' file

Question:

Would using the pickle function be the fastest and most robust way to write an integer to a text file?

Here is the syntax I have so far:

import pickle

pickle.dump(obj, file)

If there is a more robust alternative, please feel free to tell me.

My use case is writing an user input:

n=int(input("Enter a number: "))
  • Yes, A human will need to read it and maybe edit it
  • There will be 10 numbers in the file
  • Python may need to read it back later.
Asked By: clickonMe

||

Answers:

I think it’s simpler doing:

number = 1337

with open('filename.txt', 'w') as f:
  f.write('%d' % number)

But it really depends on your use case.

Answered By: Alex

The following opens a while and appends the following number to it.

def writeNums(*args):
    with open("f.txt", "a") as f:
        f.write("n".join([str(n) for n in args]) + "n")

writeNums(input("Enter a numer:"))
Answered By: HennyH

With python 2, you can also do:

number = 1337

with open('filename.txt', 'w') as f:
  print >>f, number

I personally use this when I don’t need formatting.

Answered By: Benares

Write

result = 1

f = open('output1.txt','w')  # w : writing mode  /  r : reading mode  /  a  :  appending mode
f.write('{}'.format(result))
f.close()

Read

f = open('output1.txt', 'r')
input1 = f.readline()
f.close()

print(input1)
Answered By: Dane Lee

I just encountered a similar problem.
I used a simple approach, saving the integer in a variable, and writing the variable to the file as a string. If you need to add more variables you can always use “a+” instead of “w” to append instead of write.

f = open("sample.txt", "w")
integer = 10
f.write(str(integer))
f.close()

Later you can use float to read the file and you wont throw and error.

Answered By: Adam