Я пытаюсь использовать скрипт Python here для моих собственных целей. Я не парень Python, так что, надеюсь, кто-то может понять, что у меня не так. Это ошибка с отступом?NameError on Script & DB Insert
Traceback (most recent call last): File "test.py", line 31, in <module> csv_doc.write(ouput_to_csv.join("\n")); NameError: name 'ouput_to_csv' is not defined
Во-вторых, этот сценарий создает CSV. Я бы хотел пропустить этот шаг и записать данные непосредственно в таблицу в моей базе данных с MySQLdb. Это возможно?
# import the standard libraries you'll need
import os # https://docs.python.org/2/library/os.html
import re # https://docs.python.org/2/library/re.html
# this function will walk your directories and output a list of file paths
def getFilePaths(directory):
file_paths = []
for root, directories, files in os.walk(directory):
for filename in files:
filepath = os.path.join(root, filename)
file_paths.append(filepath)
return file_paths
audio_file_paths = getFilePaths("Z:\Dropbox\Apps\DirScan\files")
output_to_csv = [];
for audio_file in audio_file_paths:
base_path, fname = os.path.split(audio_file)
reg_ex = re.compile("^(.*) - (.*) - (.*).mp3$");
# now apply the compiled regex to each path
name_components = reg_ex.match(fname);
output_to_csv.append("{0},{1}".format(name_components.join(","), base_path));
#create the file, making sure the location is writeable
csv_doc = open("database.csv", "w");
# now join all the rows with line breaks and write the compiled text to the file
csv_doc.write(ouput_to_csv.join("\n"));
#close your new database
csv_doc.close()
Предполагается, что я хочу импортировать аудиофайлы в папку в базу данных, используя регулярное выражение. Формат Artist - Title - Other info.mp3
Ах прохладное спасибо. Я это исправил. Теперь я получаю 'Z: \ Dropbox \ Apps \ DirScan> c: \ python27 \ python.exe" test.py " Traceback (последний последний звонок): Файл" test.py ", строка 31, в csv_doc .write (output_to_csv.join ("\ n")); AttributeError: объект «list» не имеет атрибута «join» –
Да, потому что это не то, как вы присоединяетесь к вещам в Python. У объектов списка нет метода «join». Вы хотите '' \ n'.join (output_to_csv) ' – kindall
, как упоминалось выше, вы должны использовать другой формат соединения! – Kasramvd