Expandindo o Til pelo Diretório Inicial do Usuário em Python

Publicado por Mauricio Ferrari em 22/09/2021

[ Hits: 243 ]

Blog: https://github.com/MauricioFerrari-NovaTrento

 


Expandindo o Til pelo Diretório Inicial do Usuário em Python



Em algumas situações, alguns usuários ou programadores podem preferir manipular arquivos que estão presentes em algum local no diretório HOME. Nesse cenário, o usuário criará um código escrevendo a localização exata do arquivo no diretório no seu código em Python, conforme o exemplo a seguir:

file = "/home/mauricio/ztextscr"

arq = open(file)
text = arq.read()

print(text)

arq.close()

É um exemplo bem simplificado mesmo, mas já dá para se ter uma ideia de onde queremos chegar. Esse código é 100% funcional, mas tem um problema. Esse código vai funcionar perfeitamente para quem criou o código, mas não para outro usuário, uma vez que esse código vai precisar de adaptação para o diretório de outro usuário e isso significa mais trabalho de manutenção.

Então, vamos tentar da seguinte forma:

file = "~/ztextscr"

arq = open(file)
text = arq.read()
print(text)

arq.close()

Ao executar esse código, ele deve funcionar perfeitamente e:

Traceback (most recent call last):
  File "/home/mauricio/example.py", line 4, in < module>
    arq = open(file)
IOError: [Errno 2] No such file or directory: '~/ztextscr'


OPA! Vamos ver o que aconteceu. O caractere "~" não foi expandido. Mas isso não é problema, para isso temos o módulo os.path. Podemos resolver isso usando a expanduser() presente nesse módulo da seguinte forma:

import os.path

file = os.path.expanduser("~/ztextscr")

arq = open(file)
text = arq.read()
print(text)

# print file variable

print("\n-------------------------\n")
print(file)

arq.close()

Aqui, eu printei a variável file só para mostrar que o local do arquivo realmente expandiu conforme esperado, como pode ser visto na imagem a seguir:
Linux: Expandindo o Til pelo Diretório Inicial do Usuário em Python
Tem muitas funções que você pode usar no módulo os.path afim de facilitar o trabalho ao manipular arquivos e diretórios, podendo se acessadas no própria documentação do Python: os.path - Common pathname manipulations - Python 3.9.6 ...

Espero que eu tenha ajudado.

Outras dicas deste autor

OpenArena que funciona no Linux Mint 20

Avidemux QT5 no Ubuntu 20.04

uGet no Linux Mint 20 com suporte a Torrent

Clonando uma tag específica no GIT

Avidemux não abre no Salix 14.2 [Resolvido]

Leitura recomendada

Python - UnicodeDecodeError: 'utf-8' codec can't decode byte [Resolvido]

Python 3.0: Gravando dicionários em arquivos

Remover diretórios recursivamente em Python

Usando o Yowsup para enviar comandos ao Shell

Python: Descompilando bytecode

  

Comentários
[1] Comentário enviado por danniel-lara em 22/09/2021 - 12:01h

boa dica


[2] Comentário enviado por mauricio123 em 22/09/2021 - 22:03h


[1] Comentário enviado por danniel-lara em 22/09/2021 - 12:01h

boa dica




valeu.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts