2014-09-03 2 views
0

Я пытаюсь использовать скрипт 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

ответ

2

вы пишете ouput_to_csv, которые должны быть output_to_csv опустить t

+0

Ах прохладное спасибо. Я это исправил. Теперь я получаю '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» –

+2

Да, потому что это не то, как вы присоединяетесь к вещам в Python. У объектов списка нет метода «join». Вы хотите '' \ n'.join (output_to_csv) ' – kindall

+0

, как упоминалось выше, вы должны использовать другой формат соединения! – Kasramvd