Как открыть файл с помощью python?

Я пытаюсь открыть случайный mp3-файл с помощью python, чтобы воспроизвести случайную песню из моего музыкального плейлиста.

это два варианта кода, которые я пробовал

file = str('C:\file.mp3')
open(file)

или

open('C:\file.mp3')

Когда я запускаю программу, я ожидаю, что откроется mp3-плеер Microsoft и воспроизведется файл, но вместо этого я получаю всплывающее сообщение с надписью "Unicode error: 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape".

Я никогда раньше не использовал open(), поэтому, если это что-то очень простое, извините.

«Я ожидаю, что откроется mp3-плеер Microsoft», почему? Также документация -> docs.python.org/3/library/functions.html#open

njzk2 09.07.2019 05:23

в некоторых системах вы можете использовать import webbrowser; webbrowser.open(filename) чтобы открыть этот файл программой по умолчанию в системе. Если вам нужно открыть в другой программе, вам может понадобиться os.system("your_player.exe your_file.mp3")

furas 09.07.2019 05:30
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
83
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Всегда используйте необработанные строки для путей к файлам Windows (и регулярных выражений). В противном случае папка, имя которой начинается с U (скажем, C:\Users), в конечном итоге выглядит как начало escape-последовательности Unicode; многие другие символы в конечном итоге также интерпретируются как escape-последовательности (например, f экранируется символом перевода формы).

Использование необработанных строк (с префиксом r) означает, что обратная косая черта экранирует только символ кавычки и ничего больше. Так:

with open(r'C:\file.mp3') as f:

работает, где:

with open('C:\file.mp3') as f:

не будет. Тем не менее, ничто из этого не откроет файл в вашем музыкальном проигрывателе. open открывает необработанный файл для чтения данных из него (скорее всего, файл mp3 выдаст ошибку, если вы попытаетесь прочитать его в текстовом режиме, если только вы не используете один из более разрешительных кодеков, например latin-1). Если вы хотите запуск файла через его обработчик по умолчанию, это то, что os.startfile для, например:

os.startfile(r'C:\file.mp3')

Этот вопрос уже задавался. Ссылка на документацию можно найти здесь

См. Может ли Python открыть файл MP3.

Вы можете использовать встроенную библиотеку os:

import os
os.startfile('my_mp3.mp3')

Другие вопросы по теме