I had some problems with my Python code. My code:
import os
logininfo = list()
with open(os.getcwd() '/login/info.txt', 'r') as f:
logininfo = f.readlines()
But my code isn’t work, so how do I fix that?
Edit: I changed the quote and changed the ‘ to '
Problem 2: After I fix all that look like my computer is freeze now and I can’t even move my mouse. After freeze for a while, the code make my computer ran to BSOD. What happened?
Okay, I think I see what the problem in problem 2 that my file was too big with 50 GB of login information of my server. Thanks you guy for helping me solve the problem 1.
CodePudding user response:
Your problem is likely that your /
(forward slashes) are supposed to be \
(backslashes). It is also a good practice to use os.path.join()
when concatenating file paths. Make sure login\info.txt
does not have a backslash in front of it. I printed the list afterwards to make sure it was working. Windows file paths use \\
.
import os
with open(os.path.join(os.getcwd(), 'login\info.txt'), 'r') as f:
logininfo = f.readlines()
print(logininfo)
CodePudding user response:
Regardless of OS, I would recommend using pathlib
module to deal with system paths and to decrease ambiguity in OS path handling.
So, regardless of OS, an API would be (including your code):
from pathlib import Path
file_path = Path.cwd() / 'login' / 'info.txt'
with open(file_path, 'r') as f:
login_info = f.readlines()
Get familiar with that module (it's out of the box!) here: https://docs.python.org/3/library/pathlib.html
CodePudding user response:
I believe the wrong thing is that you're using double slashs, when it should be:
import os
with open(os.getcwd() ‘/login/info.txt’, 'r') as f:
logininfo = f.readlines()
I reproduced the error here, created a file with the same folder structure as yours, and this definitely should work:
In [3]: with open(os.getcwd() '/login/info.txt', 'r') as f:
...: lines = f.readlines()
...: for line in lines:
...: print(line)
...:
Olá,
deixa eu ver esse erro aqui