Найти - Пользователи
Полная версия: Помогите с выборкой
Начало » Базы данных » Помогите с выборкой
1 2
danish
Собственно задача. Есть каталог /home/test/sound/ там лежит насыпь файлов *.wav
Нужно пройтись циклом по файлам и получить их имена без расширения , затем найти совпадения в mysql и выбрать нужное поле например phone . Каждый из файлов нужно записать в каталон который будет называться как поле phone.
т. е имеем файл вася пупкин.waw ищем в таблице mysql запись где namre like ‘%вася пупкин%’ выбираем поле phone -например оно равно 7777 . создаем каталог локально /home/777/ и копируем туда это файл. Как-то так. Заранее спасибо.
terabayt
Собственно задача. Нужно сходить за меня на работу, а то мне впадло, заработать много денег и принести мне. Заранее спасибо.
danish
terabayt
Собственно задача. Нужно сходить за меня на работу, а то мне впадло, заработать много денег и принести мне. Заранее спасибо.
Нет не впадло.
пока что сделал только выборку
в которой на каждой итерации цикла в переменную param должно попадать имя файла без расширения. Проблемы у меня как раз с циклом и чтением названия файлов (((
#!/usr/bin/python
# -*- coding: utf8 -*-
import MySQLdb
import string

db = MySQLdb.connect(host=“host”, user=“user”, passwd=“passwd”, db=“billing”, charset=“utf8”)
param = ‘Пупкин’
#print format(param)
cursor = db.cursor()
cursor.execute(“SELECT phone FROM tables WHERE name LIKE %s”, (“%” + param + “%”,))
data = cursor.fetchall()
print data
cursor.close()
terabayt
 a = [i[:-4] for i in os.listdir(r'/home/test/sound')]
terabayt
#!/usr/bin/python
# -*- coding: utf8 -*-
import MySQLdb
import string
import os
db = MySQLdb.connect(host="host", user="user", passwd="passwd", db="billing", charset="utf8")
for param in os.listdir(r'/home/test/sound'):
    cursor = db.cursor()
    cursor.execute("SELECT phone FROM tables WHERE name LIKE %s", ("%" + param[:-4] + "%",))
    data = cursor.fetchall()
    print data
    cursor.close()
py.user.next
danish
Проблемы у меня как раз с циклом и чтением названия файлов
>>> import glob
>>> import os
>>> 
>>> def getnames(dirpath, ext):
...     pat = os.path.join(dirpath, '*.' + ext)
...     files = glob.iglob(pat)
...     names = tuple(
...         os.path.basename(os.path.splitext(i)[0])
...         for i in files
...     )
...     return names
... 
>>> getnames('/home/guest/tmp', 'txt')
('f1', 'f2')
>>> getnames('/home/guest/tmp', 'jpg')
('blackwhite',)
>>> getnames('/home/guest/tmp', 'mp3')
()
>>>
danish
terabayt
Спасибо. Но этот код выбирает только одну запись ((( циклом он не проходит по всем файлам в каталоге
danish
danish
Нет. Все ок. Спасибо. Я с отступами натупил )))
danish
print data выводит перузльтаты типа ((u'2262',),) а мне нужно 2262 так как потом я делаю
if data:
try:
os.makedirs('/home/test/sound_name/%s'%data)
except OSError:
pass
и путь создания каиталога получаеться /home/test/sound_name/((u'2262',),)
danish
danish
print data выводит перузльтаты типа ((u'2262',),) а мне нужно 2262 так как потом я делаюif data: try: os.makedirs('/home/test/sound_name/%s'%data) except OSError: passи путь создания каиталога получаеться /home/test/sound_name/((u'2262',),)
Попробовал
data = [x for x in cursor.fetchall()]
возвращает -капец какой-то(((((((((((((((((((((((
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB