# EasyTexto
EasyTexto es un paquete que permite el manejo de archivos de texto de forma sencilla. Esta herramienta provee funciones para leer archivos así como para acceder, modificar y eliminar líneas específicas.
### ejemplo
#### Accediendo a líneas
```python
from EasyTexto import EasyTexto
texto = EasyTexto('ruta_al_archivo.txt', encode="utf-8") #el encode por defecto es utf-8
print(texto[1]) #los índices comienzan en 1, es lo mismo que el número de línea
texto[1] = 'Soy el reemplazo de la línea #1'
print(texto[1])
```
Al acceder a las líneas del archivo se devuelve un objeto de tipo `Linea`, puede hacer la conversión a `str` usando la clase. Esta clase posee los atributos `num_línea` y `texto`, puede usar esto según su contexto.
- ejemplo
```python
print(type(texto[1]))
línea_1 = texto[1] # la variable será de tipo Linea
#convirtiendo a str
línea_1_str = str(texto[1]) # el tipo será str
#accediendo al contenido de la línea
contenido_línea_1 = texto[1].texto
```
#### Modificando líneas
Tambien se permite el uso de slicing ya sea para obtener o modificar líneas
```python
print(texto[:3])
texto[::2] = 'holas'
print(texto) #mostrará una vista previa del archivo
```
#### Eliminando líneas
Para eliminar líneas se provee el método `eliminar` de la clase `EasyTexto`, este método recibe un entero indicando el número de línea a eliminar o una tupla con los números de líneas a eliminar.
```python
texto.eliminar(1)
texto.eliminar((1, 2))
print(texto)
```
#### Añadiendo líneas
Así como se puede eliminar líneas también se puede añadir líneas **al final** del archivo, esto gracias al método `append`. El argumento recibido puede ser de tipo `str`, `bytes`, `list` o `tuple`.
```python
texto.append('Soy una nueva línea')
texto.append(b'Soy una línea de bytes')
texto.append(('soy otra línea', 'y yo sigo despues'))
texto.append(['soy lo mismo de arriba', 'pero en forma de lista'])
```
En caso una línea no puedo decodificarse se mostrará como bytes y se guardará como tal. De todas formas se recomienda validar los datos y que la codificación sea correcta
Raw data
{
"_id": null,
"home_page": "https://github.com/nakato156/EasyTexto",
"name": "EasyTexto",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "file,files,text",
"author": "Christian (Nakato)",
"author_email": "christianvelasces@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/04/d5/83dce69a1d8adb93bfdc5c24dc436c977e75e82f84ebaa4d0bb3e01ad319/EasyTexto-0.2.tar.gz",
"platform": null,
"description": "# EasyTexto\r\nEasyTexto es un paquete que permite el manejo de archivos de texto de forma sencilla. Esta herramienta provee funciones para leer archivos as\u00ed como para acceder, modificar y eliminar l\u00edneas espec\u00edficas.\r\n\r\n### ejemplo\r\n\r\n#### Accediendo a l\u00edneas\r\n```python\r\nfrom EasyTexto import EasyTexto\r\n\r\ntexto = EasyTexto('ruta_al_archivo.txt', encode=\"utf-8\") #el encode por defecto es utf-8\r\nprint(texto[1]) #los \u00edndices comienzan en 1, es lo mismo que el n\u00famero de l\u00ednea\r\ntexto[1] = 'Soy el reemplazo de la l\u00ednea #1'\r\nprint(texto[1])\r\n```\r\n\r\nAl acceder a las l\u00edneas del archivo se devuelve un objeto de tipo `Linea`, puede hacer la conversi\u00f3n a `str` usando la clase. Esta clase posee los atributos `num_l\u00ednea` y `texto`, puede usar esto seg\u00fan su contexto.\r\n\r\n- ejemplo\r\n\r\n```python\r\nprint(type(texto[1]))\r\n\r\nl\u00ednea_1 = texto[1] # la variable ser\u00e1 de tipo Linea\r\n\r\n#convirtiendo a str\r\nl\u00ednea_1_str = str(texto[1]) # el tipo ser\u00e1 str\r\n\r\n#accediendo al contenido de la l\u00ednea\r\ncontenido_l\u00ednea_1 = texto[1].texto\r\n```\r\n\r\n#### Modificando l\u00edneas\r\nTambien se permite el uso de slicing ya sea para obtener o modificar l\u00edneas\r\n\r\n```python\r\nprint(texto[:3])\r\ntexto[::2] = 'holas'\r\nprint(texto) #mostrar\u00e1 una vista previa del archivo\r\n```\r\n\r\n#### Eliminando l\u00edneas\r\nPara eliminar l\u00edneas se provee el m\u00e9todo `eliminar` de la clase `EasyTexto`, este m\u00e9todo recibe un entero indicando el n\u00famero de l\u00ednea a eliminar o una tupla con los n\u00fameros de l\u00edneas a eliminar.\r\n\r\n```python\r\ntexto.eliminar(1)\r\ntexto.eliminar((1, 2))\r\nprint(texto)\r\n```\r\n\r\n#### A\u00f1adiendo l\u00edneas\r\nAs\u00ed como se puede eliminar l\u00edneas tambi\u00e9n se puede a\u00f1adir l\u00edneas **al final** del archivo, esto gracias al m\u00e9todo `append`. El argumento recibido puede ser de tipo `str`, `bytes`, `list` o `tuple`.\r\n\r\n```python\r\ntexto.append('Soy una nueva l\u00ednea')\r\ntexto.append(b'Soy una l\u00ednea de bytes')\r\ntexto.append(('soy otra l\u00ednea', 'y yo sigo despues'))\r\ntexto.append(['soy lo mismo de arriba', 'pero en forma de lista'])\r\n```\r\n\r\nEn caso una l\u00ednea no puedo decodificarse se mostrar\u00e1 como bytes y se guardar\u00e1 como tal. De todas formas se recomienda validar los datos y que la codificaci\u00f3n sea correcta\r\n\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Paquete para manejar archivos de texto de forma sencilla",
"version": "0.2",
"split_keywords": [
"file",
"files",
"text"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "04d583dce69a1d8adb93bfdc5c24dc436c977e75e82f84ebaa4d0bb3e01ad319",
"md5": "0b916f34d859e4e977b52146d2362d45",
"sha256": "1eeb646d87ccf2a7ee18f7ccec1d0bf97d61e243781b6c27d7c4a7eef234672f"
},
"downloads": -1,
"filename": "EasyTexto-0.2.tar.gz",
"has_sig": false,
"md5_digest": "0b916f34d859e4e977b52146d2362d45",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3740,
"upload_time": "2023-02-11T19:46:12",
"upload_time_iso_8601": "2023-02-11T19:46:12.489402Z",
"url": "https://files.pythonhosted.org/packages/04/d5/83dce69a1d8adb93bfdc5c24dc436c977e75e82f84ebaa4d0bb3e01ad319/EasyTexto-0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-02-11 19:46:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "nakato156",
"github_project": "EasyTexto",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "easytexto"
}