Criar arquivo txt e salvar algo dentro em Python

Tem q ser em Phyton

O while deveria vir dentro do try e não o contrário. Olha como eu fiz:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class Program {
  public static void main(String... args) {
    try {
      int i = 0;
      FileWriter myWriter = new FileWriter(new File("A.txt"));

      while (i < 100) {
        i = i + 1;
        System.out.println(i);
        myWriter.write(String.valueOf(i) + '\n');
      }

      myWriter.close();
    } catch (IOException e) {
      System.out.println("Erro");
      e.printStackTrace();
    }
  }
}

Eu usei o método String.valueOf() porque se não transformar o número em String, vc vai ver um monte de caracteres estranhos quando abrir o arquivo num editor.

Aproveitando: Desde o Java 7 que a gente não precisa mais chamar o método close() em várias situações como a que vc fez. Podemos usar o recurso chamado try-with-resources, ficaria assim:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class Program {
  public static void main(String... args) {
    try (FileWriter myWriter = new FileWriter(new File("A.txt"))) {
      for (int i = 1; i <= 100; i++) {
        System.out.println(i);
        myWriter.write(String.valueOf(i) + '\n');
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}
2 curtidas

No seu tópico inicial, você escreveu “EM JAVA” no título e na categoria escolheu Java.
:wink:

Inclusive o trecho de código que você postou, que o @wldomiciano aperfeiçoou, era em Java.

1 curtida

Vc usa a função open() e write() para escrever. Aqui está um exemplo bem simples:

myfile = open('text.txt', 'w')

for i in range(1, 101):
  myfile.write("%s\n" % i)

myfile.close()

Você pode usar with, que garante que o arquivo é fechado ao final - seria equivalente ao try-with-resources do Java:

with open('arquivo.txt', 'w') as arq:
    for i in range(1, 101):
        arq.write(f'{i}\n')

E para escrever os números usei f-string, disponível desde o Python 3.6 - o operador % ainda funciona mas a própria documentação desencoraja o uso:

The formatting operations described here exhibit a variety of quirks that lead to a number of common errors (such as failing to display tuples and dictionaries correctly). Using the newer formatted string literals, the str.format() interface, or template strings may help avoid these errors.

1 curtida

Desculpem pelo embaraço, e obrigado pela ajuda consegui entender aonde eu estava errando