LINUX.ORG.RU

Сообщения frpaul

 

права пользователя на mount

Хочу разрешить юзеру mount /media/cdromN без sudo, чтоб алиасом запускать. Как грамотно сделать?

frpaul
()

[mc, fluxbox] Не работают все сочетания с Alt

Дистр - Убунту 9.04. Флюксбокс поверх гнома. Запускаю mc в uxterm. Сабж. Подскажите, куда копать, пж.

frpaul
()

[ubuntu] умер Network Manager

Не знаю, из-за чего помер сабж (удалил вчера пару зависимостей gftp - патч не ставился, может из-за этого). Настроил сеть ручками и сижу, думаю - может вообще выкинуть NM? Ничего не поломаю, если сделаю autoclean?

 

frpaul
()

[python] Помогите оптимизировать маленькую прогу, пж.

Я учусь кодить на Пайтоне. Если не трудно, покажите приемы оптимизации на данном примере. Скрипт рабочий. Если надо могу приложить еще образец файла, откуда все читается. К сожалению, некоторые отступы «поползли». Sorry.

#! /usr/bin/python
# -*- coding: utf-8 -*-
"""Файл-мэнеджер, обрабатывающий файлы Descript.ion, созданные программой FAR
Файлы раскодируются из DOS, выводится список файлов с их каментами, опция асинхронного запуска.
"""
from Tkinter import *
import codecs
import re
import os
import subprocess

root = Tk()

class wid:
    def __init__(self):

	fr = Frame(root)       # рисуем gui
        fr.pack(side=TOP)
	self.bt = Button(fr, text='Run', command = self.yak)
        self.bt.pack(side=LEFT)
        self.en = Entry(fr, width=70)
        self.en.pack(expand=NO, side=RIGHT)
	
    def yak(self):           # функция, выполняемая при нажатии кнопки run
	z = self.en.get()

	ss = re.compile(r"(^(\".*?\"|[^ ]*) (.*$))")   # отделяем имя файла от камента
	u = list(ss.match(z).groups())			# to do: это надо делать в начале глав. цикла...

	global f_name
	f_name = u[1].replace('"','')     #  вычищаем лишние кавычки

	img = ['jpg|JPG', 'gif|GIF', 'png|PNG', 'tiff|TIFF']     # файловые ассоциации
	vid = ['avi|AVI', 'mpg|MPG']

	def check(ls):		# функция проверки расширения файлов
	    
	    ext = f_name[-3:]   # вырезаем расширение из имени файла
	    for y in ls:	# обходим переданный список расширений
		t = re.compile(y)
		if t.match(ext):    # если расширение соответствует паттерну
		    w = os.getcwd() + '/' + f_name	# выводим путь
		    break
		else:
		    w = 0
	    return w

	wls = []	# список аргументов для передачи объекту Popen

	if check(img) != 0:     # если check нашел расширение и вернул путь к файлу
	    wls.append('feh')	# делаем список для запуска в ком. строке
	    wls.append(check(img))
#	    print wls
      	    subprocess.Popen(wls)    # обработка списка (модуль subprocess)
#	else:  # здесь должно быть исключение. лучше try - except

#subprocess
#	    print 'img'
	else:
	    if check(vid) != 0:
		wls.append('mplayer')	# делаем список для запуска в ком. строке
		wls.append(check(vid))
#		print wls
		subprocess.Popen(wls)    # весь кусок после wls = [] - в объект. Не всем типам файлов нужен
					    # асинхронный запуск...

#	else:  # здесь должно быть исключение. лучше try - except

###################### MAIN ############################

try:
    fp = codecs.open('./Descript.ion', "rb", "cp866")	# читаем файло
    l = fp.read()
    p = l.split("\n")
    fp.close
except:
    print "no desc file found"
some = []
for i in range(len(p) - 1):	# построчная обработка списка. Главный цикл.
    some.append(wid())		# добавляем экземпляры класса, содержащего кнопку и поле ввода
    some[i].en.insert(0, p[i].rstrip())    # пишем в поле текст из строки

root.mainloop()    

# to do: 1 стоит здесь (в главном цикле) разделить имя файла и камент. То и другое - globals
# 2 добавить вывод ls (опционально вывод только откомментированных файлов)
# 3 сохранение файла описания в файл utf8 (desc.utf). при старте поиск этого файла, затем 
# поиск старого файла Descript.ion
# 4 забить каменты в базу (lightSQL?), поиск по базе каментов.

 

frpaul
()

[DE] Fluxbox, XFCE...

Ищу что воткнуть на нет-бук (шустрое и функциональное). Очень понравились темы (и скорость) fluxbox, но говорят, старенький. Ставить по-любому поверх гнома. Посоветуйте, плиз, как быть. ubuntu 9.04

 

frpaul
()

(python) отлов по регэкспу и чистка массива

Помогите начинающему python-coder'у, пж.

Задача:

1 (регеэксп) Ловим в строке открывающую фразу в кавычках, делим строку по пробелу. Если нету кавычек - делим по первому пробелу.

2 (список) В результате работы регекспа получается список (с кортежем внутри), в котором имеются пустые значения. Приходится вычищать.

помогите написать нормальный регексп. можно ли почистить список как-то попроще? Заранее спасибо.

import re

r = '"im writing" some comment'

#r = 'im writing some comment' # альтернативная строка

patt = r"((^\".*?\")(.*$))|((^[^\"].*?) (.*))"

ss = re.compile(patt)

y = ss.findall(r) # ищем в строке совпадения с паттерном

x = list(y[0]) # переделываем вложенный кортеж в простой список

#print x

u = [] # новый список

for e in x: if e != '': # если элемент списка не пуст набиваем в новый список u.append(e)

print u

frpaul
()

RSS подписка на новые темы