![]() |
write an integer to file using a function - 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: write an integer to file using a function (/thread-23070.html) |
write an integer to file using a function - xvkxvo - Dec-10-2019 Hello All - Python newbie here. I develop using pycharm aided by w3schools. I am playing with writing functions atm. Question is, i can't seem to write an integer to file using the code below. it works fine with writing a string to file, but not integer. Is it possible to do so, or there's some rule i'm unaware of? I posted the console output below the code as well. Thanks in advance. #creating and using a function z1 = open("<path>\file.csv", "w") #global variable 01 set, file create/open v = "python is " #global variable 02 set x = "pretty awesome " #global variable 03 set y = "and amazing" #global variable 04 set print(v + x + y), "\n" def joinFunction(): #defining a function called "joinFunction" x = 5 #joinFunction has a variable local to it called x. x is equal to a y = 6 #joinFunction has a variable local to it called y. y is equal to b z = x + y #local variable z is the value of 5 + 6 z1.write(z)#>>>>problem code here. i can't write integer to file. Not sure why? i think it breaks the joinfunction too. z1.close() joinFunction() print(v + x + y) #prints the combination of the global variables defined above #joinFunction()The console output: C:\<path>\python.exe C:/<path>/test01.py python is pretty awesome and amazing Traceback (most recent call last): File "C:/<path>/test01.py", line 14, in <module> joinFunction() File "C:/<path>/test01.py", line 12, in joinFunction z1.write(z) TypeError: expected a string or other character buffer object Process finished with exit code 1 RE: write an integer to file using a function - snippsat - Dec-10-2019 Can convert with str(z) or better in many cases is to use string formatting f-string.with open('out.txt', 'w') as f: x = 5 y = 6 z = x + y f.write(f'Result is {z}')
RE: write an integer to file using a function - xvkxvo - Dec-10-2019 Convert to str(z) work. And pick up f-string formatting. Thanks! A follow-up then. I call the joinfunction twice in the code below. The results seem to be written to the same line in the file. i tried putting "\n" at the end of: z1.write(str(z)),"\n" but it still seems to write to the same line instead of the next line. Any ideas #creating and using a function z1 = open("<path>\file.csv", "w") #global variable 01 set, file create/open v = "python is " #global variable 02 set x = "pretty awesome " #global variable 03 set y = "and amazing" #global variable 04 set print(v + x + y), "\n" def joinFunction(): #defining a function called "joinFunction" x = 5 #joinFunction has a variable local to it called x. x is equal to a y = 6 #joinFunction has a variable local to it called y. y is equal to b z = x + y #local variable z is the value of 5 + 6 z1.write(z)#>>>>problem code here. i can't write integer to file. Not sure why? i think it breaks the joinfunction too. z1.close() joinFunction() print(v + x + y) #prints the combination of the global variables defined above #joinFunction() RE: write an integer to file using a function - snippsat - Dec-10-2019 Use str(z) + "\n" .Here some fixes in your code,use 4-space indentation,a function should take argument, and not getting the value for global namespace over. Use r raw string in Path,you are using Python 2 as C:\Users will give SyntaxError in Python 3.r"C:\Users\Kingsley\Projects\X\wite.csv"Use Python 3,not Python 2 as is dead in under a month. def joinFunction(z1, s): x = 5 y = 6 z = x + y z1.write(str(z) + "\n" + s) z1.close() z1 = open("wite.csv", "w") v = "python is " x = "pretty awesome " y = "and amazing" s = v + x + y joinFunction(z1, s) With f-string can just put in \n .with open('out.txt', 'w') as f: x = 5 y = 6 z = x + y c = x ** y f.write(f'Result is {z}\nResult is {c}')
RE: write an integer to file using a function - xvkxvo - Dec-10-2019 That works. And thanks for the feedback on best practices too. These hints really helps with the learning process. To your point, I do code with Python 2 on Windows, but also run Python 3 on CentOS so i'll probably start coding with the raw string in path as suggested going forward. Thx again. |