pyplot python file-io integer argv

pyplot - title plt python



Se requiere un nĂºmero entero? abierto() (5)

Como hiciste from os import * , estás (por cierto) usando os.open, que de hecho requiere un indicador entero en lugar de una "r" o "w" textual. Saca esa línea y superarás ese error.

Tengo un script python muy simple que debe escanear un archivo de texto, que contiene líneas formateadas como id = '' value '' y ponerlas en un dict. el módulo python se llama chval.py y el archivo de entrada es in.txt. aquí está el código:

import os,sys from os import * from sys import * vals = {} f = open(sys.argv[1], ''r'') for line in val_f: t = line.split(''='') t[1].strip(''/''') vals.append(t[0], t[1]) print vals f.close()

cuando intento ejecutarlo obtengo:

Rastreo (llamadas recientes más última):
Archivo "chval.py", línea 9, ¿en? f = abrir (sys.argv [1], ''r'') TypeError: se requiere un entero

Estoy usando Python 2.4 ... porque me han desafiado a no usar nada más nuevo, ¿hay algo sobre open () que no sepa? ¿Por qué quiere un número entero?

cualquier cosa después de esa línea no se ha probado. en resumen: ¿por qué me está dando el error y cómo lo soluciono?


Desde http://www.tutorialspoint.com/python/os_open.htm también puede mantener su importación y uso

file = os.open ("foo.txt", modo)

y el modo podría ser:

os.O_RDONLY: open for reading only os.O_WRONLY: open for writing only os.O_RDWR : open for reading and writing os.O_NONBLOCK: do not block on open os.O_APPEND: append on each write os.O_CREAT: create file if it does not exist os.O_TRUNC: truncate size to 0 os.O_EXCL: error if create and file exists os.O_SHLOCK: atomically obtain a shared lock os.O_EXLOCK: atomically obtain an exclusive lock os.O_DIRECT: eliminate or reduce cache effects os.O_FSYNC : synchronous writes os.O_NOFOLLOW: do not follow symlinks


No import * from wherever sin una buena razón (y no hay muchos).

Su código está recogiendo la función os.open () en lugar de la función integrada open (). Si realmente quiere usar os.open (), import os luego llame a os.open(....) . Cualquiera que sea la apertura que desee llamar, lea la documentación sobre los argumentos que requiere.


Proporcionar estos parámetros resolvió mi problema:

with open(''tomorrow.txt'', mode=''w'', encoding=''UTF-8'', errors=''strict'', buffering=1) as file: file.write(result)


También es de destacar que a partir de Python 2.6 la función incorporada open () ahora es un alias para la función io.open (). Incluso se consideró eliminar el built-in open () en Python 3 y requerir el uso de io.open, para evitar colisiones accidentales del espacio de nombres como resultado de "from blah import *". En Python 2.6+ puedes escribir (y también puedes considerar que este estilo es una buena práctica):

import io filehandle = io.open(sys.argv[1], ''r'')