Python not creating file -
i'm trying write text file in python. file doesn't yet exist i'm using:
def writetotextfile(players): file = open('rankings.txt', 'a') player in players: file.write(player.name, player.rating, player.school, '\n') file.close() i used 'a' append , thought create new file (based on documentation). on desktop (where i'm running script from) , there's no "rankings.txt" file found.
any thoughts on how fix?
thanks, bclayman
the syntax write command incorrect. function accepts string argument. example:
file.write("{}, {}, {}\n".format(player.name, player.rating, player.school)) i've mocked quick example of full script show in action:
class player(object): def __init__(self, name, rating, school): self.name = name self.rating = rating self.school = school def writetotextfile(players): f = open('rankings.txt', 'a') player in players: f.write("{}, {}, {}\n".format(player.name, player.rating, player.school)) f.close() players = [] x in range(5): name = 'name {}'.format(x) rating = 100 - x school = 'school {}'.format(x) players.append(player(name, rating, school)) writetotextfile(players) this script creates 5 player objects , appends them players list. passed writetotextfile function. creates rankings.txt file in location running script following output:
name 0, 100, school 0 name 1, 99, school 1 name 2, 98, school 2 name 3, 97, school 3 name 4, 96, school 4 changes or improvements make:
- i changed
filevariablefprevent shadowing built in object same name. - another change can make using
withinstead of manuallyopening ,closeing file objects.
this can done so:
with open('rankings.txt', 'a') f: player in players: f.write("{}, {}, {}\n".format(player.name, player.rating, player.school))
Comments
Post a Comment