Уведомления

Группа в Telegram: @pythonsu

#1 Июль 14, 2014 16:57:44

danish
Зарегистрирован: 2014-07-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с выборкой

Собственно задача. Есть каталог /home/test/sound/ там лежит насыпь файлов *.wav
Нужно пройтись циклом по файлам и получить их имена без расширения , затем найти совпадения в mysql и выбрать нужное поле например phone . Каждый из файлов нужно записать в каталон который будет называться как поле phone.
т. е имеем файл вася пупкин.waw ищем в таблице mysql запись где namre like ‘%вася пупкин%’ выбираем поле phone -например оно равно 7777 . создаем каталог локально /home/777/ и копируем туда это файл. Как-то так. Заранее спасибо.

Офлайн

#2 Июль 14, 2014 18:35:04

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Помогите с выборкой

Собственно задача. Нужно сходить за меня на работу, а то мне впадло, заработать много денег и принести мне. Заранее спасибо.



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Июль 14, 2014 20:50:09

danish
Зарегистрирован: 2014-07-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с выборкой

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()

Офлайн

#4 Июль 14, 2014 21:43:07

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Помогите с выборкой

 a = [i[:-4] for i in os.listdir(r'/home/test/sound')]



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Июль 14, 2014 21:46:27)

Офлайн

#5 Июль 14, 2014 21:46:14

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Помогите с выборкой

#!/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()



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Июль 14, 2014 21:51:12)

Офлайн

#6 Июль 15, 2014 01:28:55

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9727
Репутация: +  843  -
Профиль   Отправить e-mail  

Помогите с выборкой

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')
()
>>>



Отредактировано py.user.next (Июль 15, 2014 01:34:15)

Офлайн

#7 Июль 15, 2014 09:36:16

danish
Зарегистрирован: 2014-07-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с выборкой

terabayt
Спасибо. Но этот код выбирает только одну запись ((( циклом он не проходит по всем файлам в каталоге

Офлайн

#8 Июль 15, 2014 10:10:19

danish
Зарегистрирован: 2014-07-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с выборкой

danish
Нет. Все ок. Спасибо. Я с отступами натупил )))

Офлайн

#9 Июль 15, 2014 10:55:36

danish
Зарегистрирован: 2014-07-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с выборкой

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',),)

Офлайн

#10 Июль 15, 2014 13:32:26

danish
Зарегистрирован: 2014-07-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с выборкой

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()]
возвращает -капец какой-то(((((((((((((((((((((((

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version