-Ïîèñê ïî äíåâíèêó

Ïîèñê ñîîáùåíèé â Linux_Loader

 -Ñòàòèñòèêà

Ñòàòèñòèêà LiveInternet.ru: ïîêàçàíî êîëè÷åñòâî õèòîâ è ïîñåòèòåëåé
Ñîçäàí: 20.04.2008
Çàïèñåé: 743
Êîììåíòàðèåâ: 2542
Íàïèñàíî: 7716

Âûáðàíà ðóáðèêà êîäèíã.


Äðóãèå ðóáðèêè â ýòîì äíåâíèêå: ññûëêè è öèòàòû(73), ñîôò(121), Ïèòîí÷èê(1), ÈÌÕÎ(44), æåëåçî(18), Äëÿ äóøè(41), äèñòðèáóòèâû(57), ãîëîâà âàâà(21), Áó-ãà-ãà!(71), Áåçîïàñíîñòü(9), windoze must die(53), sos(1), howto(35)

Çàáàâíûé ñïîñîá ðàñïàêîâêè

Äíåâíèê

Ñóááîòà, 18 Ìàðòà 2023 ã. 21:21 + â öèòàòíèê

Îêàçûâàåòñÿ, â ïàéòîí åñòü ñïîñîá áåñïîíòîâîé ðàñïàêîâêè ñëîæíûõ, íî çàêîíîìåðíûõ èòåðàáåëüíûõ îáúåêòîâ.

 
l = [(1, 2, 3), (4, 5, 6), (7, 8, 9), (4, 0, 1)]
 
for (a, b ,c) in l:
    print(f"{a}, {b}, {c}")
 
Ïîëó÷àåì âûâîä:
 
1, 2, 3
4, 5, 6
7, 8, 9
4, 0, 1
Ðóáðèêè:  êîäèíã
Ïèòîí÷èê

module 'collections' has no attribute 'MutableMapping'

Äíåâíèê

Ñðåäà, 27 Àïðåëÿ 2022 ã. 15:17 + â öèòàòíèê

Êñòàòå, òðåòüÿ äæàíãà íå ðàáîòàåò ñ ïèòîíîì 3.10. Ñåãîäíÿ ïðîáîâàë óñòàíîâèòü, ïîëó÷èë AttributeError: module 'collections' has no attribute 'MutableMapping'.

Âûõîä: èëè þçàòü ïèòîí 3.9 + äæàíãà 3.2 èëè 3.10 + 4.0. 

Ðóáðèêè:  howto
êîäèíã

Ìåòêè:  

Ïðîãðàììà

Äíåâíèê

Ïîíåäåëüíèê, 08 ßíâàðÿ 2018 ã. 01:50 + â öèòàòíèê

Âîò òàêîå ïîíàïèñàë. Äîáàâèòü íå÷åãî, êðîìå Qt-ìîðäû. Íî ýòî ïîòîì, êîãäà êîìï áóäåò.

#-*-coding:utf8;-*-
# ver. 2.31
# Ïðîãðàììà ðàññ÷èòûâàåò ñêîðîñòü èëè âðåìÿ ñâîáîäíîãî ïàäåíèÿ èç ïîëüçîâàòåëüñêîãî ââîäà. Àâòîìàòè÷åñêè êîððåêòèðóåò ââåäåííûå äàííûå. Íàïðèìåð óáèðàåò ëèøíèå òî÷êè, çàìåíÿåò çàïÿòûå òî÷êàìè. Åñëè ââîä ñîäåðæèò íåêîððåêòíûå ñèìâîëû (áóêâû è ïóíêòóàöèþ), âûäà¸ò îøèáêó è ïðåäëàãàåò ïîâòîðèòü ââîä.

# Êàê  è âñå ìîè ïðîãðàììû ðàáîòàåò ÒÎËÜÊÎ â îôôëàéíå, ïîòîìó ÷òî ñîäåðæèò  ñèìâîëû êèðèëëèöåé.

import math

def finput ():
    g = 9.8
    a = input("Ââåäèòå âûñîòó ïàäåíèÿ â ìåòðàõ \nèëè Enter, åñëè õîòèòå âû÷èñëèòü \nñêîðîñòü ïî âðåìåíè: \n> ")
    a = zap2point(a)
    if len(a) > 0:
        h = number_test(a)
        if h == "error":
            finput  ()
        else:
            h = float (h)
            u = math.sqrt(2*g*h)
            t = u / g
            u2 = u * 3.6
            print ("Êîíå÷íàÿ ñêîðîñòü ïàäåíèÿ: \n{} ì/ñ \n{} êì/÷ \n{} ì çà {} ñåê.".format (fr(u), fr(u2), fr(h), fr(t)))
    else:
        a = input("Ââåäèòå âðåìÿ ïàäåíèÿ â ñåêóíäàõ: \n> ")
        a = zap2point(a)
        t = number_test(a)
        if t == "error":
            finput ()
        else:
            t = float (t)
            u = g * t
            h = (u * t) / 2
            u2 = u * 3.6
            print ("Êîíå÷íàÿ ñêîðîñòü ïàäåíèÿ: \n{} ì/ñ \n{} êì/÷ \n{} ì çà {} ñåê.".format (fr(u), fr(u2), fr(h), fr(t)))

def number_test (a):
    b = ""
    # Åñëè  ÷èñëî òî÷åê â ñòðîêå áîëüøå 1
    # çàïîìèíàåì  èíäåêñ ïåðâîé òî÷êè.
    if a.count (".") > 1:
        pindex = a.index(".")
    else:
        pindex = len (a) + 2
    if len(a) == 0:
        b = "error"
        return b
    else:
    # Ïåðåáèðàåì  âñå ñèìâîëû ñòðîêè
    # Åñëè ñèìâîë ÷èñëî èëè òî÷êà, ïðîäîëæàåì
    # Åñëè ñèìâîë òî÷êà  è  åãî èíäåêñ  áîëüøå
    # èíäåêñà ïåðâîé òî÷êè, ïðîïóñêàåì åãî
    # Åñëè ñèìâîë íå ÷èñëî è íå òî÷êà -
    # îáðûâàåì öèêë
        for char in  a:
            if char in ("1234567890."):
                if char == "." and len (b) > pindex:
                    continue
                b += char
            else:
                print ("***********************\nÎøèáêà! Ââåäèòå öåëîå èëè \nâåùåñòâåííîå ÷èñëî, \níàïðèìåð 34 èëè 45.6\n***********************")
                b = "error"
                break
    if b == ".":
        print ("***********************\nÎøèáêà! Ââåäèòå öåëîå èëè \nâåùåñòâåííîå ÷èñëî, \níàïðèìåð 34 èëè 45.6\n***********************")
        b = "error"
    return b

# Òàê êàê ïèòîí èíîãäà îòîáðàæàåò
# íàòóðàëüíûå ÷èñëà íåêðàñèâî, íàïðèìåð
# 3.2999999999 âìåñòî 3.3, ÿ íàïèñàë
# ôóíêöèþ,êîòîðàÿ áîëåå è ìåíåå êîððåêòíî
# îêóãëÿåò ÷èñëî ïåðåä âûâîäîì íà ýêðàí.

def fr (x):
    if x >= 10000:
        x = int(math.modf(x)[1])
    elif x >= 999:
        x = "{:.5}".format(x)
    elif  x <= 0.0001:
        x = "{:.10}".format(x)
    elif x >= 99.9:
        x = "{:.4}".format(x)
    else:
        x = "{:.3}".format(x)
    return x

# Òàê êàê ÷àñòî  ïðè ââîäå ÷èñëà õî÷åòñÿ
# âìåñòî òî÷êè ïîñòàâèòü çàïÿòóþ, ýòà
# ôóíêöèÿ çàìåíÿåò âñå çàïÿòûå òî÷êàìè
# è óäàëÿåò ïðîáåëû
# ÷òîáû èçáåæàòü îøèáîê ïðè âû÷èñëåíèè

def zap2point (h):
    y = ""
    for char in h:
        if char == ",":
            char = "."
        elif char == " ":
            continue
        y += char
    return y
   
# ñîáñòâåííî, çàïóñêàåì ïðîãðàììó
finput()

Ðóáðèêè:  êîäèíã

Áåç çàãîëîâêà

Äíåâíèê

Ñðåäà, 03 ßíâàðÿ 2018 ã. 23:46 + â öèòàòíèê

ß òóò ðåøèë âñòðÿõíóòü ñòàðèíîé è çàíÿëñÿ ïèòîíîâîäñòâîì. Âðîäå áû íèêîãäà ñåðüåçíî ïðÿìî íå çàíèìàëñÿ ïðîãðàììèðîâàíèåì. Íî âðîäå è áàçà åñòü. HTML,  CSS, ÷óòîê JavaScript, à åù¸ â ó÷èëèùå Basic 2.0, à åù¸ àçû Pascal, PHP è êîíå÷íî æå ïî÷òè 10 ëåò bash íà óðîâíå þçåðà.

Íàïèñàë äàæå îäíó êîíñîëüíóþ ïðîãðàììó. Íå àõòè ïîëåçíóþ, íî óìíóþ. Òî÷íåå ïðîãðàìì íåñêîëüêî, íî îäíó ñàìóþ ìóäðóþ. Ñ÷èòàåò ñêîðîñòü è âðåìÿ ñâîáîäíîãî ïàäåíèÿ òåëà, åñëè çàäàíà âûñîòà, èëè âûñîòó è ñêîðîñòü, åñëè çàäàíî âðåìÿ ïàäåíèÿ. Óìååò àíàëèçèðîâàòü ïîëüçîâàòåëüñêèé ââîä, óäàëÿòü ëèøíèå òî÷êè, åñëè þçåðü ïîñòàâèë èõ ïî çàïàðå èëè îò íåôèã äåëàòü. Óìååò óäàëÿòü ïðîáåëû è çàìåíÿòü çàïÿòûå òî÷êàìè.

Ïðàâäà ñ ãðàôè÷åñêèì èíòåðôåéñîì ïîêà ÷òî íå ðàáîòàë. È ïðîãðàììèòü ìîãó òîëüêî íà òåëåôîíå. Êîìïà íåò. Âñ¸ ðàâíî çàáàâíî. 

Ðóáðèêè:  êîäèíã

Ìåòêè:  

Ìîé ñêðèïò äëÿ ïîäñ÷¸òà êîíòðîëüíûõ ñóìì md5 (v0.20)

Äíåâíèê

Ñóááîòà, 20 Ìàðòà 2010 ã. 01:51 + â öèòàòíèê
Ñîñòàâèë âòîðóþ âåðñèþ ñêðèïòà äëÿ ïîäñ÷¸òà md5 èç Nautilus. Ëîæèòñÿ îí îïÿòü æå â êàòàëîã ~/.gnome2/nautilus-scripts/ . Ïðè âûäåëåíèè ôàéëà, íàïðèìåð file.txt ñîçäà¸òñÿ file.txt.md5 ñ õýøåì. Ïðè âûäåëåíèè íåñêîëüêèõ ôàéëîâ ñîçäà¸òñÿ md5sum.md5 è âûâîä ïèøåòñÿ â íåãî. Ïðè âûäåëåíèè êàòàëîãà, íàïðèìåð my_catalog, ñîçäà¸òñÿ my_catalog.md5 è â íåãî âïèñûâàþòñÿ êîíòðîëüíûå ñóììû âñåõ ôàéëîâ èç my_catalog. Ïðè âûäåëåíèè íåñêîëüêèõ ôàéëîâ+êàòàëîãîâ ñîçäà¸ò md5sum.md5 è â íåãî âïèñûâàåò ïðîâåðî÷íûå ñóììû ôàéëîâ è ñîäåðæèìîãî âûäåëåííûõ êàòàëîãîâ. Òèïà òîãî. Ñ ïðîáåëàìè â èìåíàõ/ïóòÿõ âðîäå áû ðàáîòàåò õîðîøî. Íî åñëè êîìó ïðèñïè÷èò ïîïîëüçîâàòüñÿ, çà ïîñëåäñòâèÿ íå îòâå÷àþ))). Âïðî÷åì, áóäó ïîëüçîâàòüñÿ ñàì, èáî óâåðåí, áåäû îíî íå íàòâîðèò))). Äà, åñëè âûçâàòü ñêðèïò ïî êîíòåêñòíîìó ìåíþ íà ïóñòîì ìåñòå êàòàëîãà, òî áóäåò ñîçäàí md5sum.md5.error , ñ òåêñòîì Íå ïåðåäàíî íè îäíîãî àðãóìåíòà.

Âîò, ñîáñòâåííî, ñàì êîä, à âî âëîæåíèè ãîòîâûé ñêðèïò.

#!/bin/bash
#	Ñêðèïò äëÿ ïîñ÷¸òà êîíòðîëüíûõ ñóìì 0.20 (Âîñêðåñåíüå, 21 Ìàðò 2010)
#	© Ëèííèê Ñåðãåé wahnbild@yandex.ru
#	Ëèöåíçèÿ GNU GPL v2 
#	http://www.gnu.org/licenses/gpl-2.0.txt
if [ $# -eq 0 ]
  then
	echo "Íå ïåðåäàíî íè îäíîãî àðãóìåíòà" >> md5sum.md5.error
	exit 0;
fi
if [ $# -eq 1 ]
  then
	if [ -d "$1" ]
	then
		md5sum "$1"/* >> "$1".md5
	else
		md5sum "$1" >> "$1".md5
	fi
  else
	until [ -z "$1" ]
	do
		if [ -d "$1" ]
		then
			md5sum "$1"/* >> md5sum.md5
		else
			md5sum "$1" >> md5sum.md5
	fi
    shift
done
fi
exit 0;


ÇÛ. Ïðè âûäåëåíèè êàòàëîãîâ (ëè÷íî ó ìåíÿ) âëîæåííûå â íèõ êàòàëîãè èãíîðèðóþòñÿ. ß îá ýòîì íå ïîäóìàë ñíà÷àëà... Èñïóãàëñÿ, ÷òî ïîäîáíûå ñèòóàöèè áóäóò âûçûâàòü îøèáêó. Íî ó ìåíÿ âñ¸ ðàáîòàåò, ïðîâåðèë. Äëÿ âëîæåííûõ ôàéëîâ ñîçäàþòñÿ md5 ñóììû, à íàëè÷èå âëîæåííûõ êàòàëîãîâ ïðîñòî èãíîðèðóåòñÿ))). Õîòÿ, íàäî íà âñÿêèé ñëó÷àé ïîçæå ýòó îïëîøíîñòü èñïðàâèòü, à-òî âñÿêîå áûâàåò...
Ðóáðèêè:  ñîôò
êîäèíã

Ìîé ñêðèïò äëÿ æ¸ñòêèõ ññûëîê âåðñèÿ 0.21

Äíåâíèê

Âîñêðåñåíüå, 28 Ôåâðàëÿ 2010 ã. 17:18 + â öèòàòíèê
Âåðñèÿ 0.20 îêàçàëàñü ñ ïðîáëåìêîé, ïîòîìó íå ïîçîðþñü è íå âûêëàäûâàþ. Îí íå ðàáîòàë ñ ôàéëàìè, â èìåíè/ïóòè êîòîðûõ åñòü ïðîáåë èëè êàêîé-ëèáî åù¸ õèòðûé ñèìâîë íàïîäîáèå êàâû÷åê))). Äà, è òåïåðü ÿ åìó íàçâàíèå ïðèäóìàë: scriptus-idiotus
. Õîòÿ, åñëè ÷åñòíî, óäîáíàÿ âåùü))).

Èòàê, scriptus-idiotus 0.21:

#!/bin/bash
# scriptus-idiotus 0.21
# Ñêðèïò ñîçäàíèÿ æ¸ñòêèõ ññûëîê (Ñóááîòà, 13 Ôåâðàëü 2010).
# © Ëèííèê Ñåðãåé wahnbild@yandex.ru
# Ëèöåíçèÿ GNU GPL v2
# http://www.gnu.org/licenses/gpl-2.0.txt
#
# Script using instructions http://www.liveinternet.ru/users/linux_loader/post119297532/
# Èíñòðóêöèè ïî ïðèìåíåíèþ ñêðèïòà http://www.liveinternet.ru/users/linux_loader/post119297532/
until [ -z "$1" ] # Äî òåõ ïîð ïîêà íå áóäóò ðàçîáðàíû âñå âõîäíûå àðãóìåíòû...
do
numb=0;
while [ $numb -lt 1000 ];
do
numb=$(( $numb + 1 ));
filename="$1($numb)";
if [ ! -e "$filename" ]
then
cp -rl "$1" "$filename"
numb=1001;
fi
done
shift
done


Êóäà åãî ïèõàòü áûëî òóò http://www.liveinternet.ru/users/linux_loader/post119297532/ . Êðàòêèé changelog.

1. Òåïåðü ìîæíî ñîçäàâàòü ññûëêè íà íåñêîëüêî îáúåêòîâ ñðàçó, âûäåëèâ èõ â îêíå íàóòèëóñà.
2. Òåïåðü ññûëêè ñîçäàþòñÿ íå â ïàïêå, à ðÿäîì ñ èñõîäíûì ôàéëîì, èìÿ ìåíÿåòñÿ ïî òàêîìó ïðàâèëó:
file-name --> file-name(1)
Åñëè ïðèìåíèòü ñêðèïò ïîâòîðíî, òî áóäóò ñîçäàíû file-name(1), file-name(2), file-name(3), file-name(4)... Ìàêñèìàëüíîå çíà÷åíèå - 1000. Ïîñëå íåãî ñêðèïò íå áóäåò íè÷åãî äåëàòü (ìàëî ëè, âäðóã ÷òî-òî çàêëèíèò è áóäåò ìèëëèîí ññûëîê â ïàïêå íà îäèí ôàéë, êîìó îíî íàäî, òàêîå ñ÷àñòüå?).

Ìîæíî ñäåëàòü íîâûé è ñòàðûé ñêðèïò îäíîâðåìåííî è ïîëüçîâàòüñÿ ëþáûì ïîä íàñòðîåíèå :D.

Ïðîáëåìû: êîâåðêàåòñÿ ðàñøèðåíèå ôàéëîâ. Òî åñòü ññûëêà íà ôàéë kino.avi ïîëó÷àåò èìÿ kino.avi(1) . Õîòÿ, îáû÷íî ýòî íå ïðèíöèïèàëüíî âàæíî â Ëèíóêñ, à íà FAT èëè NTFS ññûëêè âñ¸ ðàâíî íå ñîçäàþòñÿ :). À êðîìå òîãî âñåãäà ìîæíî ïåðåèìåíîâàòü ðåçóëüòàò. Âåðñèÿ 0.22 áóäåò èìåòü êîíå÷íûå èìåíà â ôîðìàòå ìÿãêèõ ññûëîê Íàóòèëóñà: file-name --> Ññûëêà íà file-name . Õîòÿ, ìíå ïîêà ÷òî òàêîé ïîäõîä òîæå íå íðàâèòñÿ, òàê êàê ðåçóëüòàò áóäåò â îêíå ïðîãðàììû äàëåêî îò èñõîäíèêà... Íå î÷åíü-òî óäîáíîå ðåøåíèå...

Ãîòîâûé ñêðèïò åñòü âî âëîæåíèè òèïà. Ïóñòü áóäåò íà âñÿêèé :).
Ðóáðèêè:  ñîôò
êîäèíã

Ìåòêè:  

Ƹñòêèå ññûëêè, ïðîäîëæåíèå

Äíåâíèê

Âîñêðåñåíüå, 24 ßíâàðÿ 2010 ã. 18:18 + â öèòàòíèê
Èòàê, ÿ ïîø¸ë äàëüøå è óïðîñòèë ñîçäàíèå æ¸ñòêèõ ññûëîê. Ïîêà ìîæíî ñîçäàâàòü ìîèì ñïîñîáîì òîëüêî íà îäèí ôàéë, èáî ñ ïðîãðàììèðîâàíèåì ÿ ïîêà ÷òî íå ñèëüíî äðóæó... Íà ÷òî ãàðàçä, òî è ñâàÿë))). Êàê ñîçäàâàòü æ¸ñòêèå ññûëêè â Íàóòèëóñå.

 êàòàëîãå ~/.gnome2/nautilus-scripts/ ñîçäà¸ì èñïîëíÿåìûé òåêñòîâûé ôàéë. Òî áèøü, â ïðàâàõ äîñòóïà ê ôàéëó äîëæíî áûòü ðàçðåøåíî âûïîëíåíèå. Ýòî ÿñíî. ß íà âñÿêèé ñëó÷àé ñêàçàë.  ñàì ôàéë ïèøåì ñëåäóþùåå:

#!/bin/bash
sdate=`date +%Y-%m-%d\ %H-%M-%S`;
mkdir "links $sdate";
cp -rl "$*" "links $sdate"/;

Ìîæíî íàçâàòü ñêðèïò "Ñîçäàòü æ¸ñòêóþ ññûëêó", áåç ðàñøèðåíèÿ. Òîãäà â êîíòåêñòíîì ìåíþ ôàéëîâ è êàòàëîãîâ Íàóòèëóñà ïîÿâèòñÿ ïóíêò:
 (498x341, 5Kb)

 ðåçóëüòàòå, â òåêóùåì êàòàëîãå áóäåò ñîçäàí êàòàëîã ñ èìåíåì "links òåêóùèå_ãîä-ìåñÿö-äåíü ÷àñû-ìèíóòû-ñåêóíäû" è â í¸ì æ¸ñòêèå ññûëêè. Òàêîå èìÿ ÿ çàäàë äëÿ óíèêàëüíîñòè èìåíè íîâîãî êàòàëîãà. ßñåíü ïåíü, íà äèðåêòîðèè æ¸ñêèå ññûëêè ñîçäàíû íå áóäóò. Áóäóò ïðîñòî ñîçäàíû íîâûå äèðåêòîðèè ñ òàêèìè æå èìåíàìè.

Íåäîñòàòêè.

  1. Ðàáîòàåò òîëüêî â Íàóòèëóñå. Íî óâåðåí, ÷òî ìîæíî ïðèêðóòèòü ê ëþáîé äðóãîé îáîëî÷êå. Íàïðèìåð, àññîöèèðîâàòü êàòàëîãè ó ñåáÿ ñ ýòèì ñêðèïòîì. Óæå ïîë ïðîáëåìû ðåøåíî áóäåò))).  Êîíêâåðîðå íàâåðíîå òîæå ñêðèïòû åñòü.

  2. Ñîçäà¸ò çà îäèí ðàç ññûëêó òîëüêî íà îäèí ôàéë/êàòàëîã. Åñëè âûäåëèòü íåñêîëüêî, òî íè÷åãî íå âûéäåò. Åñëè íàäî ñäåëàòü ññûëêè íà ìíîãî ôàéëîâ, òî öåëåñîîáðàçíî ñîçäàòü íîâûé êàòàëîã, íàïðèìåð temp è âðåìåííî ïåðåìåñòèòü ýòè ôàéëû â íåãî. Îòêðûòü êàòàëîã temp ñêðèïòîì, à ïîòîì âåðíóòü îðèãèíàëû ôàéëîâ íàìåñòî))).

Äà, åù¸. ×òîáû ëåãêî ñîçäàâàòü ôàéëû ñêðèïòîâ, ñäåëàéòå øàáëîí íàïðèìåð òàêîé:

#!/bin/bash


ñ èìåíåì íàïðèìåð new.sh, ïîìåñòèòå åãî â ïàïêó ~/Øàáëîíû èëè ÷òî òàì ó âàñ çàïèñàíî â ~/.config/user-dirs.dirs . Ñäåëàéòå åãî èñïîëíÿåìûì ïî æåëàíèþ. ïîñëå ýòîãî ìîæíî ñîçäàâàòü íîâûå ïóñòûå ñêðèïòû â Íàóòèëóñå èç ýòîãî øàáëîíà, ïðîñòî êîíòåêñòíûì ìåíþ, òàê æå, êàê ñîçäàþòñÿ êàòàëîãè.

P.S. Êîä ñöåíàðèÿ ðàñïðîñòðàíÿåòñÿ íà óñëîâèÿõ ëèöåíçèè GPL v2 . Åñëè âû îá íåãî ñëîìàåòå ñâîè ôàéëû, ÿ íå âèíîâàòûé . Ãàðàíòèðîâàííîå êîëè÷åñòâî ãëþêîâ â ñêðèïòå 3ãëþêà/ñèìâîë
Ðóáðèêè:  ñîôò
howto
êîäèíã

Ìåòêè:  

 Ñòðàíèöû: [1]