I have a save function within my Python program which looks like this:
def Save(n):
print(\"S3\")
global BF
global WF
global PBList
globa
You probably did a star import from the os module:
>>> open("test.dat","w")
<open file 'test.dat', mode 'w' at 0x1004b20c0>
>>> from os import *
>>> open("test.dat","w")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: an integer is required
so you're using the wrong open function. (I suppose you could've simply done from os import open
, but that's less likely.) In general this import style should be avoided, as should use of global
, where practical.
As DSM noted, you're using http://docs.python.org/library/os.html#os.open instead of built-in open() function.
In os.open() the second parameter (mode) should be integer instead of string. So, if you ought to use from os import *
then just substitute mode string with one of the following args:
You need to escape your strings: a \ in a string is an escape character.
Either escape the slashes:
"C:\\KingsCapture\\Test\\List.txt"
or use Raw strings:
r"C:\KingsCapture\Test\List.txt"
I'll bet that n is 1
not "1"
.
try:
print(type(n))
I'll guess that you'll see its an int
not a string.
File = open("C:\KingsCapture\Saves\\" + n + "\BF.txt", "w")
You can't add ints and strings producing the error message you are getting.