Tenho um grande número de arquivos txt no E:\Desktop\Social_media\edit8\New folder
diretório e cada arquivo tem uma organização semelhante à seguinte:
Bolt
2,739,393
Classmates
1,267,092
SixDegrees
1,077,353
PlanetAll
552,488
theGlobe
437,847
OpenDiary
9,251
1998
MARCH
034+
Agora quero mesclar cada arquivo txt nas últimas 3 linhas, como segue:
Bolt
2,739,393
Classmates
1,267,092
SixDegrees
1,077,353
PlanetAll
552,488
theGlobe
437,847
OpenDiary
9,251
034+ MARCH 1998
isso significa que as últimas 3 linhas devem ter um arranjo comonumber+ month year
Eu escrevo o seguinte script python para isso, mas não sei por que não está funcionando:
import os
# Define the directory where your text files are located
directory_path = r'E:\Desktop\Social_media\edit8\New folder'
# Function to rearrange the lines and write to a new file
def rearrange_lines(file_path):
with open(file_path, 'r') as file:
lines = [line.strip() for line in file.readlines() if line.strip()] # Read non-empty lines
# Check if there are at least 3 non-empty lines
if len(lines) >= 3:
lines[-1], lines[-2], lines[-3] = lines[-3], lines[-2], lines[-1] # Rearrange the last 3 lines
# Create a new file with the rearranged lines
with open(file_path, 'w') as file:
file.write('\n'.join(lines))
# Iterate through each file in the directory
for root, dirs, files in os.walk(directory_path):
for file_name in files:
if file_name.endswith('.txt'):
file_path = os.path.join(root, file_name)
rearrange_lines(file_path)
print(f'Rearranged lines in {file_name}')
print('Done!')
Onde está meu problema de script? e como resolver o problema?
Você não está combinando as três últimas linhas em uma única linha no resultado.
Atribuir a
lines[-3:]
é uma substituição de fatia. Substituímos isso por uma lista de uma única linha.Encontrei o problema do meu script com a ajuda dos comentários: