Не могу понять ошибку с открытием текстового файла - PullRequest
0 голосов
/ 07 января 2020

Я работаю над системой ведения журналов и испытываю некоторые затруднения с передачей данных из текстового файла в переменную.

database = open('C:\\Users\\user\\Desktop\\text.txt', 'r')
print(database)

Когда я пытаюсь это сделать, это происходит. Что это значит?

<_ io.TextIOWrapper name = 'C: \ Users \ пользователь \ Desktop \ text.txt' mode = 'r' encoding = 'cp1251'>

Ответы [ 2 ]

3 голосов
/ 07 января 2020

Вам нужно прочитать данные из файла, поэтому вам нужно использовать метод read. также, пожалуйста, откройте файл с помощью with, чтобы файл автоматически закрывался, так что это правильный способ сделать то, что вы хотите достичь.

Открытие файла с помощью with, опять же, мы используем это потому что он закроет файл автоматически, а затем мы читаем данные файла с помощью метода read(), и, наконец, мы печатаем данные файла.

Пример:

with open('C:\\Users\\user\\Desktop\\text.txt', 'r') as f:
    data = f.read()
    print(data)
    # The file is closed automatically

Еще одна вещь: вы можете выбрать путь к рабочему столу, используя модуль os , вместо того, чтобы писать каждый раз ваш путь к рабочему столу, он будет каждый Путь к рабочему столу.

Мы используем os.path.join(), чтобы соединить две строки вместе, поэтому это добавит sla sh (/) между ними, а затем мы получим профиль пользователя path (C:\Users\USERNAME)

Так что, если мы печатаем переменную desktopPath, мы получаем такой результат: C:\Users\USERNAME\Desktop.

import os

# desktop Path
desktopPath = os.path.join(os.environ['USERPROFILE'], 'Desktop')

with open(os.path.join(desktopPath, 'test.txt'), 'r') as f:
    data = f.read()
    print(data)
0 голосов
/ 07 января 2020

Вы печатаете объект python, содержащий файл. Вместо этого вы, вероятно, хотите печатать строки файла.

попробуйте это: print(database.readlines())

...