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

Publicado por Mauricio Ferrari em 22/09/2021

[ Hits: 1.617 ]

Blog: https://www.youtube.com/@LinuxDicasPro

 


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

StarUML no Slackware 14.2

Compilando o Vim 8.2 com suporte a clipboard

dvd::rip no Linux Mint 20 na gambiarra

Instalando o Google Chrome no Slackware Current sem Slackbuilds

Extraindo a Versão de um Pacote do Debian

Leitura recomendada

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

Python: Descompilando bytecode

Usando o Yowsup para enviar comandos ao Shell

Python 3.0: Gravando dicionários em arquivos

Remover diretórios recursivamente em Python

  

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

boa dica


[2] Comentário enviado por maurixnovatrento 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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts