Хотелось бы узнать, есть ли способ найти путь к временному файлу без возврата int (в моем случае 15). Я хотел бы вернуть строку (или объект, в котором я могу затем превратиться в один, пожалуйста, подробно, как) путь - это путь к временному файлу (и его имя). Пример: /Users/FooBar/Python3.6/Modules/TempFile/Opus/THE_TEMP_FILE или что-то в этом роде. Я уже написал небольшой файл .wav для него и хотел бы получить путь для получения времени / продолжительности воспроизведения, используя os .stat (). Я хочу использовать временный файл, потому что я ленивый и не хочу делать много «специального» кода для четырех разных операционных систем, на которых я пытаюсь использовать эту программу. Вот мой код:
import pygame, time, os, tempfile
import urllib.request as ur
pygame.init() # Initialize the pygame
DISPLAYSURF = pygame.display.set_mode((1, 1)) # Sets display. Needed to play sound
sound = input('What sound should play: ') # Asks which sound
url = 'http://207.224.195.43:8000/' + sound # Gets server url
response = ur.urlopen(url) # Open url
data = response.read() # Create byte like object containing .wav code
f = tempfile.TemporaryFile() # Create TempFile
f.write(data) # Write .wav data gotten from server
f.seek(0) # Prepare to read it
soundObj = pygame.mixer.Sound(f.read()) # Load sound to be played
f.seek(0) # Prepare to read it
statbuf = os.stat(f.name) # Gets stats from TempFile. Returns int, I want to fix that
mbytes = statbuf.st_size / 1024 # Gets 'not real' sound duration
soundObj.play() # Plays sounds
time.sleep(mbytes / 200) # Gets 'real' sound duration and waits
soundObj.stop() # Stops sounds once done
Дайте мне знать (комментарий), если у вас есть какие-либо предложения. Я просмотрел несколько сайтов, один из которых был переполнен стеком, который вы могли ошибочно принять за дубликат этого вопроса. Речь шла о Django, который, как я понимаю, совершенно отличается от python. Спасибо за ответ на этот вопрос. Помните, я не ищу подтверждения по этому вопросу, я это уже знаю. Пожалуйста, дайте мне возможный ответ на вопрос как можно скорее.
Спасибо!
- Пользователь 9311010