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.
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.
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:"))
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.
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)
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.
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.
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.
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:"))
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.
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)
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.