|
|
|
import os |
|
import zipfile |
|
|
|
def read_uploaded_file(file): |
|
filepath = file.name |
|
|
|
def safe_read(path): |
|
try: |
|
with open(path, "r", encoding="utf-8", errors="ignore") as f: |
|
return f.read() |
|
except Exception as e: |
|
return f"Erro ao ler {path}: {str(e)}" |
|
|
|
if filepath.endswith(".zip"): |
|
output = "" |
|
try: |
|
with zipfile.ZipFile(filepath, "r") as zip_ref: |
|
zip_ref.extractall("unzipped") |
|
for name in zip_ref.namelist(): |
|
if name.endswith((".py", ".txt")): |
|
full_path = os.path.join("unzipped", name) |
|
if os.path.isfile(full_path): |
|
content = safe_read(full_path) |
|
output += f"\n# ===== {name} =====\n{content}\n" |
|
return output.strip() if output else "Nenhum arquivo .py ou .txt encontrado no ZIP." |
|
except zipfile.BadZipFile: |
|
return "Erro: Arquivo ZIP inválido ou corrompido." |
|
elif filepath.endswith((".py", ".txt")): |
|
return safe_read(filepath) |
|
else: |
|
return "Tipo de arquivo não suportado. Envie .py, .txt ou .zip." |
|
|