Tenho um grande número de arquivos txt no E:\Desktop\Social_media\edit8\New folder (2)
diretório e cada arquivo tem uma organização como a seguir:
Bolt;539,110
Classmates;263,454
PlanetAll;126,907
theGlobe;73,063
SixDegrees;64,065
JANUARY 1997
Agora quero mover as últimas linhas para a primeira linha como segue:
JANUARY 1997
Bolt;539,110
Classmates;263,454
PlanetAll;126,907
theGlobe;73,063
SixDegrees;64,065
Eu escrevo o seguinte script python para isso:
import os
directory = r'E:\Desktop\Social_media\edit8\New folder (2)' # Replace with the directory path containing your text files
# Get a list of all text files in the directory
files = [file for file in os.listdir(directory) if file.endswith('.txt')]
# Process each file
for file in files:
file_path = os.path.join(directory, file)
# Read the file content
with open(file_path, 'r') as f:
lines = f.readlines()
# Extract the last line and strip the newline character
last_line = lines.pop().strip()
# Insert the last line at the beginning
lines.insert(0, last_line)
# Write the modified content back to the file
with open(file_path, 'w') as f:
f.writelines(lines)
Meu script está funcionando bem, mas não sei por que ele move a última linha para a primeira da primeira linha, como segue:
JANUARY 1997Bolt;539,110
Classmates;263,454
PlanetAll;126,907
theGlobe;73,063
SixDegrees;64,065
Onde está meu problema de script? e como consertar isso?
Você está removendo explicitamente o caractere de nova linha
strip()
(os comentários dizem isso). Remova esta tira e tudo ficará bem. (strip
retorna uma cópia da string com os caracteres de espaço em branco iniciais e finais removidos - documentação )Então, em vez de
Fazer
Se não funcionar ou se você não puder excluir o
strip
método porque realmente precisa remover os espaços em branco, você pode adicionar manualmente um caractere de nova linha no final da última linha fazendo assim