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

Publicado por Mauricio Ferrari em 22/09/2021

[ Hits: 1.372 ]

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

Melhores listas de IPTV para adicionar no Hypnotix ou IPTVnator

Grub não detecta outras partições após a atualização do Slackware [Resolvido]

PhotoQT no Debian, Ubuntu, Linux Mint e derivados

Ocenaudio no Slackware - uma alternativa mais simples ao Audacity

Leitura recomendada

Remover diretórios recursivamente em Python

Python 3.0: Gravando dicionários em arquivos

Python: Descompilando bytecode

Usando o Yowsup para enviar comandos ao Shell

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

  

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