如何使用 Python 3 从 folder/directory 搜索和播放 mp3 文件?
How to search and play a mp3 file from a folder/directory using Python 3?
我想写一个 python 代码,当给定一个字符串(要搜索的 mp3 文件的名称)时,它将搜索与给定字符串与文件名匹配的目录。找到后打开播放。
我有一个代码可以在给定目录中搜索给定字符串。是否可以修改此代码以实现上述任务?谢谢你。 `
#Import os module
import os
# Ask the user to enter string to search
search_path = input("Enter directory path to search : ")
file_type = input("File Type : ")
search_str = input("Enter the search string : ")
# Append a directory separator if not already present
if not (search_path.endswith("/") or search_path.endswith("\") ):
search_path = search_path + "/"
# If path does not exist, set search path to current directory
if not os.path.exists(search_path):
search_path ="."
# Repeat for each file in the directory
for fname in os.listdir(path=search_path):
# Apply file type filter
if fname.endswith(file_type):
# Open file for reading
fo = open(search_path + fname)
# Read the first line from the file
line = fo.readline()
# Initialize counter for line number
line_no = 1
# Loop until EOF
while line != '' :
# Search for string in line
index = line.find(search_str)
if ( index != -1) :
print(fname, "[", line_no, ",", index, "] ", line, sep="")
# Read next line
line = fo.readline()
# Increment line counter
line_no += 1
# Close the files
fo.close()
此代码略有不同,但最适合解决上述问题。
!/usr/bin/env python3
import os
import random
import sys
rdm = raw_input("Would you let me make a choice? 0 or 1: ")
#cur_dir = os.getcwd()
if rdm == '1':
print("Playing random song")
folder=os.listdir(os.getcwd()) #To randomly play a song
file=random.choice(folder)
ext3=['.mp3']
print('First random pick: '+file)
while file[-4:] not in ext3 :
print('Not an MP3 file : '+file)
file=random.choice(folder)
else:
os.startfile(file)
print('Song name: '+file)
sys.exit()
else:
if rdm == '0':
file_name = raw_input("File Name: ") #file to be searched
#cur_dir = raw_input("Search Directory: ") # Dir from where search starts can be replaced with any path
cur_dir = os.getcwd()
while True:
file_list = os.listdir(cur_dir)
parent_dir = os.path.dirname(cur_dir)
if file_name in file_list:
print ("File Exists in: "), cur_dir
#
os.startfile(file_name)
#
break
else:
if cur_dir == parent_dir: #if dir is root dir
print ("File not found")
break
else:
cur_dir = parent_dir
我想写一个 python 代码,当给定一个字符串(要搜索的 mp3 文件的名称)时,它将搜索与给定字符串与文件名匹配的目录。找到后打开播放。
我有一个代码可以在给定目录中搜索给定字符串。是否可以修改此代码以实现上述任务?谢谢你。 `
#Import os module
import os
# Ask the user to enter string to search
search_path = input("Enter directory path to search : ")
file_type = input("File Type : ")
search_str = input("Enter the search string : ")
# Append a directory separator if not already present
if not (search_path.endswith("/") or search_path.endswith("\") ):
search_path = search_path + "/"
# If path does not exist, set search path to current directory
if not os.path.exists(search_path):
search_path ="."
# Repeat for each file in the directory
for fname in os.listdir(path=search_path):
# Apply file type filter
if fname.endswith(file_type):
# Open file for reading
fo = open(search_path + fname)
# Read the first line from the file
line = fo.readline()
# Initialize counter for line number
line_no = 1
# Loop until EOF
while line != '' :
# Search for string in line
index = line.find(search_str)
if ( index != -1) :
print(fname, "[", line_no, ",", index, "] ", line, sep="")
# Read next line
line = fo.readline()
# Increment line counter
line_no += 1
# Close the files
fo.close()
此代码略有不同,但最适合解决上述问题。
!/usr/bin/env python3
import os
import random
import sys
rdm = raw_input("Would you let me make a choice? 0 or 1: ")
#cur_dir = os.getcwd()
if rdm == '1':
print("Playing random song")
folder=os.listdir(os.getcwd()) #To randomly play a song
file=random.choice(folder)
ext3=['.mp3']
print('First random pick: '+file)
while file[-4:] not in ext3 :
print('Not an MP3 file : '+file)
file=random.choice(folder)
else:
os.startfile(file)
print('Song name: '+file)
sys.exit()
else:
if rdm == '0':
file_name = raw_input("File Name: ") #file to be searched
#cur_dir = raw_input("Search Directory: ") # Dir from where search starts can be replaced with any path
cur_dir = os.getcwd()
while True:
file_list = os.listdir(cur_dir)
parent_dir = os.path.dirname(cur_dir)
if file_name in file_list:
print ("File Exists in: "), cur_dir
#
os.startfile(file_name)
#
break
else:
if cur_dir == parent_dir: #if dir is root dir
print ("File not found")
break
else:
cur_dir = parent_dir