Невозможно открыть текстовый файл в python - PullRequest
0 голосов
/ 12 апреля 2020

Всякий раз, когда я пытаюсь получить доступ к файлу .txt, используя python, я получаю сообщение об ошибке:

Трассировка (последний последний вызов):
Файл "C: / Users /monty/AppData/Local/Programs/Python/Python38-32/tess.py ", строка 1, в
f1 = open (" d: \ test.txt ")
OSError: [Errno 22] Invalid Аргумент: 'd: \ test.txt'

Screenshot of error

Пожалуйста, помогите!

Ответы [ 3 ]

2 голосов
/ 12 апреля 2020

Укажите путь, используя двойное обратное sla sh вместо одиночного sla sh (т. Е. Обратное sla sh является escape-характером)

fp = open('D:\\test.txt')

используйте одиночное прямое sla sh

fp = open('D:/test.txt')
0 голосов
/ 12 апреля 2020

В python функция open () в основном нуждается в 3 параметрах: имя файла, режим и кодировка. Вы указали имя файла, но вам все еще нужно указать режим. Есть много режимов, но вам в основном понадобится 3 из них:

"w" -> (режим записи) создает файл, а если файл существует, создает пустой файл "a" -> (режим добавления) создает файл, и если файл существует добавляет новые данные к предыдущим данным "r" -> (режим чтения) читает предварительно созданный файл.

и параметр кодирования предназначен для правильного отображения символов: ascii -> для engli sh алфавит utf-8 - > для большинства языков в мире (используйте это)

Так что в целом вы должны использовать открытую функцию, подобную этой, выберите, которая соответствует вашей цели:

fp=open("filename.txt","w",encoding="utf-8")
fp=open("filename.txt","a",encoding="utf-8")
fp=open("filename.txt","r",encoding="utf-8")
0 голосов
/ 12 апреля 2020

В обычных строковых литералах Python обратная косая черта sh, за которой следует какой-либо символ, имеет особое значение. (Ищите «строковые литералы» и «escape-последовательность» или смотрите здесь .) В этом случае \t - это символ tab . Попробуйте это:

>>> print("d:\test.txt")
d:  est.txt

Итак, когда вы пытаетесь открыть "d:\test.txt", вы открываете не файл test.txt в каталоге root диска d, а файл d вкладка test.txt в текущем рабочем каталоге.

Существует несколько решений для этого. Например, используйте необработанный строковый литерал: r"d:\test.txt".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...