Python output into .txt or .csv file - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Python output into .txt or .csv file (/thread-11600.html) |
Python output into .txt or .csv file - stanthaman42 - Jul-17-2018 My current Code is below. I am attempting to take my outputs from this code and place it into a .txt or .csv file. When I run this, I am getting the error "write() argument must be str, not int" -- does anyone have any suggestions on what I need to fix to make this work? have been struggling with it for a few days but cant seem to figure out the issue. Thank you in advance for your help! def getAllCombinations(s, length): if length == 0: return [''] else: ret = [] for idx, c in enumerate(s): combos = getAllCombinations(s[0:idx] + s[idx+1:], length - 1) for i in range(len(combos)): combos[i] = c + combos[i] ret += combos return ret def getPermutations(s, ret, swapIdx = 0): if swapIdx == len(s): ret.append(int(''.join(s))) for i in range(swapIdx, len(s)): cpy = [c for c in s] cpy[swapIdx], cpy[i] = cpy[i], cpy[swapIdx] getPermutations(cpy, ret, swapIdx + 1) def getAllPermutations(i): s = str(i) allPerms = set() for i in range(len(s)): curCombos = getAllCombinations(s, i + 1) for combo in curCombos: ret = [] getPermutations(combo, ret) allPerms = allPerms.union(set(ret)) return list(allPerms) def isPrime(n): if n==2 or n==3: return True if n%2==0 or n<2: return False for i in range(3,int(n**0.5)+1,2): # only odd numbers if n%i==0: return False return True def getNumPrimes(i): perms = getAllPermutations(i) numprimes = 0 for perm in perms: if (isPrime(perm)): numprimes += 1 return numprimes def find_maxPrimes(): max = 0 maxNum = 0 for i in range (1000, 10000): cur = getNumPrimes(i) if (max < cur): max = cur maxNum = i return maxNum #print(find_maxPrimes()) def find_maxPrimes2(): # max = 0 # maxNum = 0 #Printing here directly for i in range (1000, 10000): print (i, " ---> ", getNumPrimes(i)) #print(find_maxPrimes2()) fh = open("numperms","a") fh.write(find_maxPrimes()) fh.write(find_maxPrimes2()) fh.close() RE: Python output into .txt or .csv file - ichabod801 - Jul-17-2018 Well, find_maxPrimes returns an int. You need to convert that to a str before you can write it to a file, like the error says. You can do this with the str() built-in function. RE: Python output into .txt or .csv file - stanthaman42 - Jul-17-2018 (Jul-17-2018, 04:46 PM)ichabod801 Wrote: Well, find_maxPrimes returns an int. You need to convert that to a str before you can write it to a file, like the error says. You can do this with the str() built-in function. Thank you for your help! How do I do that without changing a lot of the code that I already have? I have tried to insert the str function but I guess I am placing it in the wrong line?? looking for some guidance on where to insert the str function. I have been trying to figure this out for a few days... RE: Python output into .txt or .csv file - ichabod801 - Jul-17-2018 fh.write(str(find_maxPrimes()))
|