Python - ARGV

 
Vista:
Imágen de perfil de María José

ARGV

Publicado por María José (1 intervención) el 25/12/2016 14:36:08
Hola! No sé para qué sirve exactamente la funcion argv extraida del modulo sys.
alguien podria explicarme la ultima parte de este ejercicio?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def fasta2sec (fastafile) :
  """ Lee un fichero FASTA y
  devuelve la secuencia que contiene """
  F = open (fastafile)
  secuencia = ""
  for linea in F :
    linea = linea.strip("\n")
    if len(linea) != 0 and linea[0] != '>':
      secuencia = secuencia + linea
  return secuencia
 
def gc (secuencias) :
  results=[]
  for sec in secuencias:
    pcgc = (sec.count('G') + sec.count('C')) / float(len(sec))*100.
    results.append(pcgc)
  return results

### PROGRAMA PRINCIPAL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from sys import argv
 
if len(argv) <= 2 : # nombre + número argumentos
  print "Debe dar 2 o más nombres de ficheros FASTA"
  exit()
 
# Creación de listas de secuencias
seqs = []
for i in range(1,len(argv)) :
  seqs.append(fasta2sec(argv[i]))
 
# Obtención de lista de contenido en G+C
pcgc = gc(seqs)
max  = pcgc[0]
for i in range(len(pcgc)) :
  if pcgc[i] >= max :
    max = pcgc[i]
    imax = i
print 'La secuencia %s es la más rica en G+C con un %.2f%%' % (argv[imax+1] , pcgc[imax])
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ARGV

Publicado por Daniel (1 intervención) el 25/12/2016 19:13:47
Argv es la lista de argumentos que le pasas al programa (python script). argv[0] es el nombre del script, que es dependiente del sistema operativo no importa el camino o path que le hayas especificado. Es decir que si no le pasa ningun argumento al programa lo que te va a dar como resultado es un empty string o nada, para eso sirve el argv.

Basicamente el programa lo que necesita es que le entres una serie de argumentos para poder ser ejecutados de no hacerlo devuelve: Debe dar 2 o más nombres de ficheros FASTA y sale del programa, este script tienes que correrlo en un terminal para poder entrar todos los argumentos desde el teclado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar