Crie um programa que abre um arquivo chamado entrada.txt, existente no diretório do projeto, e que substitui cada ocorrência da letra/caractere ’ a ’ por ’ X '.

Passo 1

O enunciado pede um programa que abra o arquivo chamado entrada.txt (que já existe no diretório do projeto) e substitua cada ocorrência do caractere 'a' por 'X'.
Informações dadas:
  • Arquivo de entrada: entrada.txt (no diretório do projeto).
  • Substituição desejada: cada 'a''X'.
    O que o programa deve produzir:
  • Atualizar o conteúdo do arquivo de modo que todas as letras 'a' sejam trocadas por 'X' (preservando todo o resto do conteúdo).

Passo 2

Escolha do método: vamos usar uma solução simples e clara em Python:
  • Abrir o arquivo e ler todo o conteúdo como texto.
  • Usar o método de string .replace() para trocar 'a' por 'X'.
  • Gravar o resultado de volta no mesmo arquivo (sobrescrevendo-o).
    Justificativa: essa abordagem é direta, fácil de entender/implementar e funciona bem para arquivos de tamanho razoável (o comum em exercícios). Para arquivos enormes seria melhor processar por blocos, mas não é necessário aqui.

Passo 3

Explicando os passos de I/O em arquivos (sem pular etapas):
  • open(nome, modo, encoding=...): abre um arquivo. O modo pode ser:
    • 'r' para leitura,
    • 'w' para escrita (sobrescreve o arquivo),
    • 'a' para acrescentar ao final.
      Usaremos 'r' para ler e depois 'w' para escrever.
  • file.read() lê todo o conteúdo como uma única string.
  • file.write(texto) escreve a string no arquivo.
  • Sempre fechar o arquivo ao terminar; usando with open(...) as f: isso é feito automaticamente.
  • encoding='utf-8' garante que caracteres especiais sejam lidos/escritos corretamente (boa prática).

Passo 4

Explicando .replace() de strings:
  • Em Python, nova = velha.replace(antigo, novo) cria uma nova string onde todas as ocorrências de antigo foram trocadas por novo.
  • É sensível a maiúsculas/minúsculas: 'a' não troca 'A'. Se quiser trocar também 'A', é preciso chamar .replace('A', 'X') adicionalmente ou usar outra estratégia.
  • .replace() não altera a string original (strings são imutáveis); por isso atribuiremos o resultado a uma variável.

Passo 5

Boas práticas/observações:
  • A solução simples ler+replace+escrever é suficiente aqui.
  • Se se desejar maior segurança (não corromper o arquivo em caso de erro durante escrita), pode-se escrever num arquivo temporário e depois renomeá-lo para o original. A versão final abaixo é a forma simples — clara para prova/uso cotidiano.
  • Se for preciso trocar também 'A', adapte o código (mostro variação nos comentários do código).

Passo 6

Exemplo passo a passo do que o código fará (em palavras):
  1. Abrir entrada.txt em modo leitura ('r') com utf-8.
  2. Ler todo o texto para uma variável conteudo.
  3. Fazer novo = conteudo.replace('a', 'X').
  4. Abrir entrada.txt em modo escrita ('w') com utf-8 (isso sobrescreve o arquivo).
  5. Escrever novo no arquivo e fechar.

Passo 7

Como executar:
  • Salve o código abaixo em um arquivo, por exemplo substitui_a.py, no mesmo diretório onde está entrada.txt.
  • Execute com python substitui_a.py (ou python3 substitui_a.py, dependendo do sistema).
  • Ao terminar, entrada.txt terá todas as letras 'a' substituídas por 'X'.

Resposta

# substitui_a.py
# Programa que abre 'entrada.txt' no diretório atual e substitui cada 'a' por 'X'

def main():
    nome_arquivo = 'entrada.txt'
    try:
        # Ler todo o conteúdo do arquivo
        with open(nome_arquivo, 'r', encoding='utf-8') as f:
            conteudo = f.read()
    except FileNotFoundError:
        print(f"Erro: o arquivo '{nome_arquivo}' não foi encontrado no diretório atual.")
        return
    except Exception as e:
        print(f"Erro ao ler o arquivo: {e}")
        return

    # Substituir cada ocorrência de 'a' por 'X' (sensível a maiúsculas)
    novo_conteudo = conteudo.replace('a', 'X')
    # Se quiser também substituir 'A', descomente a linha abaixo:
    # novo_conteudo = novo_conteudo.replace('A', 'X')

    try:
        # Sobrescrever o arquivo com o novo conteúdo
        with open(nome_arquivo, 'w', encoding='utf-8') as f:
            f.write(novo_conteudo)
    except Exception as e:
        print(f"Erro ao escrever no arquivo: {e}")
        return

    print(f"Substituição concluída: todas as ocorrências de 'a' foram trocadas por 'X' em '{nome_arquivo}'.")

if __name__ == '__main__':
    main()

Exercícios relacionados