Main Content

fopen

Abrir un archivo u obtener información sobre archivos abiertos

Descripción

ejemplo

fileID = fopen(filename) abre el archivo, filename, para tener acceso de lectura binario, y devuelve un identificador de archivo como un entero igual o mayor que 3. MATLAB® reserva los identificadores de archivo 0, 1 y 2 para entrada estándar, salida estándar (la pantalla) y error estándar, respectivamente.

Si fopen no puede abrir el archivo, fileID es -1.

fileID = fopen(filename,permission) abre el archivo con el tipo de acceso especificado por permission.

ejemplo

fileID = fopen(filename,permission,machinefmt,encodingIn) también especifica el orden de los bytes o bits de lectura y escritura del archivo mediante el argumento machinefmt. El argumento opcional encodingIn especifica el esquema de codificación de caracteres asociado con el archivo.

ejemplo

[fileID,errmsg] = fopen(___) también devuelve un mensaje de error que depende del sistema si fopen no puede abrir el archivo. De lo contrario, errmsg es un vector de caracteres vacío. Puede utilizar esta sintaxis con cualquiera de los argumentos de entrada de las sintaxis anteriores.

ejemplo

fIDs = fopen('all') devuelve un vector fila que contiene los identificadores de archivo de todos los archivos abiertos. Los identificadores reservados para entradas, salidas o errores estándar no se incluyen. El número de elementos del vector es igual al número de archivos abiertos.

filename = fopen(fileID) devuelve el nombre del archivo que usó una anterior llamada a fopen cuando abrió el archivo especificado por fileID. El nombre del archivo de salida se resuelve en la ruta completa. La función fopen no lee información del archivo para determinar el valor de salida.

ejemplo

[filename,permission,machinefmt,encodingOut] = fopen(fileID) también devuelve el permiso, el formato del equipo y la codificación que usó una anterior llamada a fopen cuando abrió el archivo especificado. Si el archivo se abrió en modo binario, permission incluye la letra 'b'. La salida encodingOut es un nombre de esquema de codificación estándar. fopen no lee información del archivo para determinar estos valores de salida. Un fileID no válido devuelve vectores de caracteres vacíos para todos los argumentos de salida.

Ejemplos

contraer todo

Abra el archivo y pase el identificador del archivo la función fgetl para leer los datos.

Abra el archivo, tsunamis.txt, y obtenga el identificador.

fileID = fopen('tsunamis.txt');

Pase el fileID a la función fgetl para leer una línea del archivo.

tline = fgetl(fileID)
tline =

  'A global tsunami data set in xlsx format, comprising the following file:'

Cierre el archivo.

fclose(fileID)

Cree una línea de comandos para solicitar el nombre del archivo que desea abrir. Si fopen no puede abrir el archivo, muestre el mensaje de error correspondiente.

fileID = -1;
errmsg = '';
while fileID < 0 
   disp(errmsg);
   filename = input('Open file: ', 's');
   [fileID,errmsg] = fopen(filename);
end

Abra un archivo para escribir en él utilizando la codificación de caracteres Shift-JIS.

fileID = fopen('japanese_out.txt','w','n','Shift_JIS');

La entrada 'w' especifica el acceso de escritura, la entrada 'n' especifica el orden de bytes nativo y 'Shift_JIS' especifica el esquema de codificación de caracteres.

Suponga que antes ha abierto un archivo utilizando fopen.

fileID = fopen('tsunamis.txt');

Obtenga los identificadores de archivo de todos los archivos abiertos.

fIDs = fopen('all')
fIDs =

     3

Obtenga el nombre y la codificación de caracteres del archivo abierto. Utilice ~ en lugar de los argumentos de salida que quiera omitir.

[filename,~,~,encoding] = fopen(fileID)
filename =

    'matlabroot\toolbox\matlab\demos\tsunamis.txt'


encoding =

    'windows-1252'

La salida que se muestra aquí es representativa. Sus resultados podrían variar.

Argumentos de entrada

contraer todo

Nombre del archivo que se desea abrir, especificado como vector de caracteres o escalar de cadena que incluye la extensión del archivo.

En los sistemas UNIX®, si filename comienza por '~/' o '~username/', la función fopen expande la ruta hasta el directorio personal del usuario actual o especificado, respectivamente.

En función de la ubicación del archivo, filename puede tomar una de estas formas.

Carpeta actual o carpeta en la ruta de MATLAB

Especifique el nombre del archivo en filename.

Si abre un archivo con acceso de lectura y no se encuentra en la carpeta actual, fopen lo busca en la ruta de búsqueda de MATLAB.

Si abre un archivo con acceso de lectura o acceso para añadir y no se encuentra en la carpeta actual, fopen crea un archivo en el directorio actual.

Ejemplo: 'sample_file.txt'

Otras carpetas

Si el archivo no está en la carpeta actual o en una carpeta de la ruta de MATLAB, especifique el nombre de la ruta completa o relativa en filename.

Ejemplo: 'C:\myFolder\myFile.sample_file.txt'

Ejemplo: 'myFolder\sample_file.txt'

Ubicación remota

Si el archivo está almacenado en una ubicación remota, filename debe contener la ruta completa del archivo, especificada como un localizador uniforme de recursos (URL) con el formato siguiente:

scheme_name://path_to_file/my_file.ext

Según la ubicación remota, scheme_name puede ser uno de los valores de esta tabla.

Ubicación remotascheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs
HDFS™hdfs

Si utiliza un sistema de archivos en la nube, establezca variables de entorno para comunicarse con el sistema de archivos remoto. Para obtener más información, consulte Trabajar con datos remotos.

Los archivos de un volumen de Sistema de archivos distribuido de Hadoop (HDFS) no se pueden abrir en el modo lectura o escritura.

Ejemplo: 's3://bucketname/path_to_file/sample_file.txt'

Ejemplo: 'myFile.txt'

Tipos de datos: char | string

Tipo de acceso a archivos, especificado como un vector de caracteres o un escalar de cadena. Puede abrir un archivo en el modo binario o en el modo texto. En los sistemas UNIX, ambos modos de traslación tienen el mismo efecto. Para abrir un archivo en el modo binario, especifique uno de los siguientes.

'r'

Abrir un archivo para su lectura.

'w'

Abrir o crear un nuevo archivo para su escritura. Descartar el contenido existente, si lo hay.

'a'

Abrir o crear un nuevo archivo para su escritura. Añadir información al final del archivo.

'r+'

Abrir un archivo para su lectura o escritura.

'w+'

Abrir o crear un nuevo archivo para su lectura o escritura. Descartar el contenido existente, si lo hay.

'a+'

Abrir o crear un nuevo archivo para su lectura o escritura. Añadir información al final del archivo.

'A'

Abrir un archivo para añadir información sin vaciar automáticamente el buffer de salida actual.

'W'

Abrir un archivo para su escritura sin vaciar automáticamente el buffer de salida actual.

Para abrir archivos en el modo texto, añada la letra 't' al argumento permission, como 'rt' o 'wt+'.

En el modo texto de sistemas Windows®:

  • Las operaciones de lectura que detectan un retorno de carro seguido de un carácter de línea nueva ('\r\n') eliminan el retorno de carro de la entrada.

  • Las operaciones de escritura insertan un retorno de carro antes que cualquier carácter de línea nueva en la entrada.

Abra o cree un nuevo archivo en el modo texto si quiere escribir en él en MATLAB y luego abrirlo en el Bloc de notas de Microsoft® o cualquier otro editor de texto que no reconozca '\n' como una secuencia de línea nueva. Al escribir en el archivo, termine cada línea con '\r\n'. Para ver un ejemplo, consulte fprintf. De lo contrario, abra los archivos en el modo binario para conseguir un mejor rendimiento.

Para leer y escribir un mismo archivo:

  • Abra el archivo con un valor para permission que incluya el signo más, '+'.

  • Llame a fseek o a frewind entre las operaciones de lectura y escritura. Por ejemplo, no llame a fread seguido de fwrite, o a fwrite seguido de fread, a menos que llame a fseek o a frewind entre ambas operaciones.

Tipos de datos: char | string

Orden de los bytes o bits de lectura o escritura, especificado como uno de los siguientes vectores de caracteres o escalares de cadena.

'n' o 'native'

El orden de bytes de su sistema (predeterminado)

'b' o 'ieee-be'

Orden big-endian

'l' o 'ieee-le'

Orden little-endian

's' o 'ieee-be.l64'

Orden big-endian, tipo de datos largo de 64 bits

'a' o 'ieee-le.l64'

Orden little-endian, tipo de datos largo de 64 bits

De forma predeterminada, todas las plataformas compatibles actuales utilizan el orden little-endian para archivos nuevos. Los archivos binarios ya existentes pueden usar tanto el sistema de orden big-endian como little-endian.

Tipos de datos: char | string

Codificación de caracteres para utilizar operaciones de lectura y escritura posteriores, incluidas fscanf, fprintf, fgetl, fgets, fread y fwrite, especificada como vector de caracteres o escalar de cadena. El vector de caracteres o escalar de cadena debe contener un nombre de esquema de codificación de caracteres estándar como los siguientes:

"Big5"

"ISO-8859-1"

"windows-874"

"Big5-HKSCS"

"ISO-8859-2"

"windows-949"

"CP949"

"ISO-8859-3"

"windows-1250"

"EUC-KR"

"ISO-8859-4"

"windows-1251"

"EUC-JP"

"ISO-8859-5"

"windows-1252"

"EUC-TW"

"ISO-8859-6"

"windows-1253"

"GB18030"

"ISO-8859-7"

"windows-1254"

"GB2312"

"ISO-8859-8"

"windows-1255"

"GBK"

"ISO-8859-9"

"windows-1256"

"IBM866"

"ISO-8859-11"

"windows-1257"

"KOI8-R"

"ISO-8859-13"

"windows-1258"

"KOI8-U"

"ISO-8859-15"

"US-ASCII"

 

"Macintosh"

"UTF-8"

 

"Shift_JIS"

 

Si no especifica un esquema de cifrado al abrir un archivo para lectura, fopen utiliza la detección automática del conjunto de caracteres para determinar la codificación. Si no especifica un esquema de cifrado al abrir un archivo para escritura, fopen utiliza de forma predeterminada UTF-8 para permitir la interoperabilidad entre todas las plataformas y configuraciones locales sin pérdida de datos ni daños. Para obtener más información, consulte Importar archivos de datos de texto con E/S de bajo nivel.

Si especifica un valor de codificación que no esté en la lista de valores compatibles, MATLAB emite una advertencia. Al especificar otros nombres de codificación, a veces, no siempre, se producen resultados correctos.

Tipos de datos: char | string

Identificador de archivo de un archivo abierto, especificado como entero.

Tipos de datos: double

Sugerencias

  • En la mayoría de los casos, no es necesario abrir un archivo en el modo texto. Las funciones de importación de MATLAB, todas las aplicaciones de UNIX y Microsoft Word y WordPad reconocen '\n' como un indicador de línea nueva.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| | | | | | | | |