PDA

Visualizza la versione completa : [Python] info iniziali Xp SP 2


luciano73
03-07-2005, 21:50
Un saluto a tutti,
premettendo che non ho grande esperienza di programmazione volevo sapere ,dato che ho iniziato a esplorare questo linguaggio interessante, quali programmi servano sotto Xp SP 2 o sono più consigliabili per coloro che sono agli inizi.
Per programmi intendo dire costruire interfaccie grafiche,compilatore di esegguibili etc(tutto il necessario insomma) e se eventualmente ci sono particolari problemi per far girare programmi scritti in Python sotto windows.

Grazie delle eventuali risposte

Wave
03-07-2005, 22:34
bhe...python è un linguaggio interpretato...come java quindi se non hai l'interprete non riesci a far girare un programma scritto in python....

per quanto riguarda programmare interfacce grafiche io ti consiglio le PyGtk...molto belle da vedere...ma ci sono molte altre valide alternative...


www.python.it

trovi un sacco di cosa interessante...

cmq sia (questa è una mia opinione) python per windows mi sembra sprecato...lo vedo molto meglio accoppiato a linux o a sistemi UNIX based questo linguaggio...

ciao ciao

luciano73
04-07-2005, 20:34
Ciao Wave,
grazie per le dritte cercherò maggiori info.Desumo che tu già usi questo linguaggio.Come faresti a tirar fuori
da un file .txt i numeri in neretto contenente queste info:

[00000000] Number of VOBs in VTS_VOBS 1 [0001]
[00000004] End byte of VTS_C_ADT table 43 [0000002b]
[00000008] 1. Cell: VOB ID 1 [0001]
[0000000a] 1. Cell: Cell ID 1 [01]
[0000000c] 1. Cell: Start sector 0 [00000000]
[00000010] 1. Cell: End sector 139179 [00021fab]
[00000014] 2. Cell: VOB ID 1 [0001]
[00000016] 2. Cell: Cell ID 2 [02]
[00000018] 2. Cell: Start sector 139180 [00021fac]
[0000001c] 2. Cell: End sector 252234 [0003d94a]
[00000020] 3. Cell: VOB ID 1 [0001]
[00000022] 3. Cell: Cell ID 3 [03]
[00000024] 3. Cell: Start sector 252235 [0003d94b]
[00000028] 3. Cell: End sector 330652 [00050b9c]


e realizzarci un file .txt come questo in uscita:

PSL2
0:0x0,0,TITLE
1:0,139979
1:139180,252234
1:252235,330652



Se hai un po' di tempo per spiegarmi la cosa O.k. altrimenti ti ringrazio lo stesso.


Ciao

Wave
04-07-2005, 23:18
no...guarda scusami....non conosco a fondo python...ho iniziato a interessarmene da poco ma sto andando avanti a singhiozzi per via del caldo, e dello studio quindi penso che per il tuo problema dovrai aspettare che uno più in gamba di me ti dia una mano....

P.S. è tanto che non vedo KornShell sul forum...lui si che di pyhon ne capiva... :smack: ti avrebbe subito trovato una soluzione...

Fox82
05-07-2005, 00:44
Questo è il punto di partenza, con qualche dettaglio in più sui formati dei file di input e di output si potrebbe anche migliorare:



import re

fi = open('data.txt', 'r')
rows = fi.read().split('\n')
fi.close()

fo = open('out.txt', 'w')
regexp = re.compile('sector (\d+) ')

tmpList = []
for row in rows:
mo = regexp.search(row)
if mo is not None:
tmpList.append(mo.groups()[0])

for i in xrange(0, len(tmpList), 2):
fo.write('1:%s,%s\n' % (tmpList[i], tmpList[i+1]))

fo.close()


:ciauz:

luciano73
05-07-2005, 21:17
@wave
...grazie lo stesso io ho iniziato da un paio di giorni (come di certo ti sarai accorto!!!)...volevo far il grande salto verso il mondo linux e siccome mi servirebbe una piccola appicazione per
i dvd (argomento protezioni) ho deciso di cercare di scriverla in Python....ma come si suol dire tra il dire e il fare...... :confused:

@Fox

Cerco di capire quello che scrivi perdonami ......per gli strafalcioni!!!!E' solo 2 giorni che mi interesso all'argomento Python.

import re#cos'è "re"?

fi = open('data.txt', 'r')#Apri il file .txt in modalità lettura(r credo stia per "read")

rows = fi.read().split('\n')#leggi tutto il contenuto e lo metti di seguito senza spazi (almeno credo)

fi.close()#chiudi

fo = open('out.txt', 'w')#Apri un file .txt(.psl andrebbe meglio)in modalità scrittura per il momento vuoto


regexp = re.compile('sector (\d+) ')#qua inizio a perdermi poichè
richiami credo la funzione re che non conosco.

tmpList = []
for row in rows:
mo = regexp.search(row)
if mo is not None:
tmpList.append(mo.groups()[0])

for i in xrange(0, len(tmpList), 2):
fo.write('1:%s,%s\n' % (tmpList[i], tmpList[i+1]))


un paio di for ....dimmelo tu che è meglio!!!! :messner:

fo.close()#questa la consoco chiudi il file in uscita!!

Abbi pazienza ti prego..... :ciauz:

A presto

Fox82
06-07-2005, 00:59
Hai ragione, non mi sono certo sprecato con i commenti: :bhò:



import re # importo il modulo per le espressioni regolari

fi = open('data.txt', 'r') # apro il file in modalita read
rows = fi.read().split('\n') # leggo l'intero contenuto dividendolo per righe (carattere '\n')
fi.close() # chiudo il file

fo = open('out.txt', 'w') # apro il file di output
regexp = re.compile('sector (\d+) ') # creo una espressione regolare che matcha con righe contenenti la praola 'sector' seguita da 1 o + cifre

tmpList = []
for row in rows:
mo = regexp.search(row) # il metodo search ritorna None se la riga non combacia con l'espressione regolare, altrimenti ritorna un oggetti contenente i risultati della ricerca
if mo is not None: # se la ricerca ha avuto successo
tmpList.append(mo.groups()[0]) #inserisco nella lista il numero trovato

for i in xrange(0, len(tmpList), 2): # ciclo sulla lista dei risultati procedendo per coppie e li scrivo sul file di output
fo.write('1:%s,%s\n' % (tmpList[i], tmpList[i+1]))

fo.close()


Spero che ora sia più chiaro. Se non sai cosa sono le regular expressions, dai un'occhiata alla documentazione.

Ciao :ciauz:

Loading