On 03/30/2017 11:02 AM, Rafael Knuth wrote: > I can read files like this (relative path): > > with open("Testfile_B.txt") as file_object: > contents = file_object.read() > print(contents) > > But how do I read files if I want to specify the location (absolute path): > > file_path = "C:\Users\Rafael\Testfile.txt" > with open(file_path) as file_object: > contents = file_object.read() > print(contents) > > The above does not work ...
Yeah, fun. You need to escape the \ that the idiot MS-DOS people chose for the file path separator. Because \ is treated as an escape character. Get familiar with the path function in the os module, it will let you do examinations of file paths, by the way, including constructing them in ways https://docs.python.org/2/library/os.path.html simple workaround: use a r letter in front of the string (r for raw): file_path = r"C:\Users\Rafael\Testfile.txt" os.path.exists(file_path) ugly workaround: escape the backslashes so they aren't treated specially: file_path = "C:\\Users\\Rafael\\Testfile.txt" os.path.exists(file_path) you can use os.path.join() to build up a path string in a more independent way, although it doesn't work quite as expected. To get what you're asking for, though: file_path = os.path.join(os.path.expanduser('~Rafael'), 'Testfile.txt') print(file_path) _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor