Mi archivo de entrada tiene dos columnas. Estoy tratando de imprimir la segunda columna de inputdata1.txt
dentro de un segundo for-loop. Pero mi código no está funcionando. ¿Puede alguien decirme qué debo hacer?Python - Leer segunda columna del archivo
Respuesta
Podría hacer algo como esto. Separator
es el caracter que su archivo usa para separar columnas, p. Ej. pestañas o comas
for line in open("inputfile.txt"):
columns = line.split(separator)
if len(columns) >= 2:
print columns[1]
with open('inputdata1.txt') as inf:
for line in inf:
parts = line.split() # split line into parts
if len(parts) > 1: # if at least 2 parts/columns
print parts[1] # print column 2
esto asume las columnas están separadas por espacios en blanco.
La función split() puede especificar diferentes separadores. Por ejemplo, si las columnas se separaron con las comas ,
, usaría line.split(',')
en el código anterior.
NOTA: El uso de with
para abrir su archivo cierra automáticamente cuando haya terminado, o si se encuentra con un excepción.
' de la biblioteca 'csv'.strip() 'es redundante si es seguido por' line.split() ' –
Quick 'n sucia
Si se instala AWK:
# $2 for the second column
os.system("awk '{print $2}' inputdata1.txt")
Utilizar una clase
hacer una clase:
class getCol:
matrix = []
def __init__(self, file, delim=" "):
with open(file, 'rU') as f:
getCol.matrix = [filter(None, l.split(delim)) for l in f]
def __getitem__ (self, key):
column = []
for row in getCol.matrix:
try:
column.append(row[key])
except IndexError:
# pass
column.append("")
return column
Si inputdata1.txt
se vería así:
hel lo wor ld wor ld hel lo
Se podría conseguir esto:
print getCol('inputdata1.txt')[1]
#['lo', 'ld']
Notas adicionales
- Puede utilizar
pyawk
para más características awk - Si se está utilizando el Quick 'n el uso del método sucia
subprocess.Popen
- Puede cambiar el delimitador
getCol('inputdata1.txt', delim=", ")
- Uso
filter
para eliminar los valores vacíos o descomentarpass
f = open("file_to_read.txt") # open your file
line = f.readline().strip() # get the first line in line
while line: # while a line exists in the file f
columns = line.split('separator') # get all the columns
while columns: # while a column exists in the line
print columns # print the column
line = f.readline().strip() # get the next line if it exists
Con este código, tienes acceso a todas las columnas de cada línea.
- 1. Cómo leer la segunda columna en un archivo grande
- 2. Archivo de Python Leer + Escribir
- 3. salida de la segunda columna de un archivo
- 4. Leer archivo enorme en Python
- 5. While loop, cómo leer desde la segunda línea del archivo de texto
- 6. Python: obtenga el iterador de columna de un archivo (sin leer todo el archivo)
- 7. Leer el objeto del archivo como una cadena en python
- 8. ¿Cómo leer líneas del archivo mmap en python?
- 9. ¿Cómo se pueden leer bytes del archivo en Python
- 10. PHP: Leer línea específica del archivo
- 11. Leer del archivo en Eclipse
- 12. Leer valores nulos del archivo
- 13. Leer del archivo o stdin
- 14. leer archivo del almacenamiento externo
- 15. Leer el archivo txt con multi-threaded en python
- 16. Leer un archivo zip y escribirlo en otro archivo python
- 17. Leer del archivo, borrarlo, escribir en él
- 18. curl: leer los encabezados del archivo
- 19. Leer datos estructurados del archivo binario -?
- 20. ¿Cómo puedo leer los detalles del archivo?
- 21. Insertar en una columna seleccionando otra columna en otra tabla pero cómo llenar la segunda columna
- 22. QSplitter: ¿Cómo hacer que la segunda columna sea más pequeña?
- 23. Usando el nombre del archivo para nombrar una columna
- 24. Python - Encontrar Valor máximo en la segunda columna de una lista anidada
- 25. ¿Cómo puedo obtener la segunda y tercera columna en el archivo delimitador de pestañas en bash?
- 26. Instalación de la segunda python en Debian
- 27. Leer/escribir archivos en Python
- 28. ¿Cómo leer el contenido del archivo desde un archivo?
- 29. Leer archivo de propiedades fuera del archivo JAR
- 30. ¿Cómo leer encabezados de archivo en Python similar a C?
¿Podría mostrar algún código? – jsalonen
Debería mostrar el código que "_no está funcionando_" y explicar qué significa "no funciona" en más detalles. – Tadeck
Además, es posible que desee explicar cómo se separan las columnas en inputdata1.txt – dckrooney