Red de conocimiento informático - Problemas con los teléfonos móviles - [Lenguaje simple] Escritura por lotes de archivos txt en diferentes nombres de carpeta según el contenido de la secuencia de texto

[Lenguaje simple] Escritura por lotes de archivos txt en diferentes nombres de carpeta según el contenido de la secuencia de texto

El método más sencillo es leer el contenido del archivo una vez y guardarlo.

Método 1: implementación de Python

importar sistema operativo

text_file_path = 'd:\\123.txt' # Definir la ruta del archivo de texto

folder_path = 'd:\\ceshi' # Definir la ruta de la carpeta

con open(text_file_path, 'r') como f: # Leer el contenido del archivo de texto y devolver una lista que contiene cada línea de texto

content = f.readlines()

folders = os.listdir(folder_path) # Obtener la lista de carpetas

para i en range(len(folders)): # Recorrer la lista de carpetas, crear un archivo de texto y escribir contenido

file_name = carpetas[i] + '.txt' # Crear la ruta del archivo de texto y el nombre del archivo

file_path = os.path. join(folder_path, carpetas[i], file_name)

con open(file_path, 'w') como f:# Escribir archivo de texto

f.writelines(content)

p>

Primero, lea el archivo de texto especificado y obtenga el contenido de cada línea de texto. Luego obtenga la lista de todas las subcarpetas en la carpeta especificada, recorra cada carpeta por turno, cree la ruta del archivo de texto y el nombre del archivo, y escriba el contenido del texto leído en el archivo.

Método 2: implementación de Java

importar java.io.BufferedReader;

importar java.io.BufferedWriter;

importar java. io.FileReader;

importar java.io.FileWriter;

importar java.io.IOException;

importar java.nio.file.Paths;

p>

importar java.nio.File.Paths;

importar java.nio.File.Paths;

importar java.nio.File.Paths ;

importar java.nio.File.Paths;for (String carpetaName : Paths.get(folderPath).toFile().list()) { // Recorrer la lista de carpetas

if (!Paths .get(folderPath, carpetaName).toFile().isDirectory()) {

continuar; // Si la ruta actual no es una carpeta, omita

}

//Construye la ruta del archivo de texto y el nombre del archivo

String fileName = folderName + ".txt"

String filePath = Paths.get(folderPath, nombre de carpeta, nombre de archivo). toString();

try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath ))){

mientras ((line = br.readLine()) != null) { //Lee el contenido del archivo de texto línea por línea

bw.write(line); //Escribe el contenido leído en el archivo actual

bw. newLine(); // Escribir carácter de nueva línea

}

folderCount++;

System.out.println("Escribió " + folderCount + " archivo de texto." ) ;

} catch (IOException e) {

e.printStackTrace();

}

br.reset(); // Restablecer lectura Obtener posición

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

Primero, definimos la ruta del archivo de texto textFilePath y la ruta de la carpeta FolderPath, luego usamos BufferedReader para leer el archivo de texto línea por línea, y use BufferedWriter para escribir el contenido en cada nuevo archivo de texto en la subcarpeta. Finalmente, genere el número que se ha escrito en el archivo de texto.

Método 3: implementación del lenguaje C

#include

#include

#include

#define MAX_LINE _LEN 1024

int main(void) {

FILE *textFile;

línea de caracteres [MAX_LINE_LEN];

char *textFilePath = "d:\123.txt"; // ruta del archivo de texto

char *folderPath = "d:\\ceshi"; ruta de la carpeta

if ((textFile = fopen(textFilePath, "r")) == NULL) { // Abrir archivo de texto

printf("Error al abrir el archivo de texto.\ n");

return -1;

}

int carpetaCount = 0; // Número de carpetas actualmente atravesadas

char nombre de carpeta[256];

nombre de archivo char[256];

ruta de archivo char[512];

sprintf(ruta de archivo, "%s\\%s " , ruta de carpeta, nombre de carpeta); // Construye la ruta de la carpeta

while (1) {

if (fgets(line, MAX_LINE_ LEN, textFile) == NULL) { // Lee un línea de un archivo de texto

fseek(textFile,0L,SEEK_SET);

if (fgets(line, MAX_LINE_LEN, textFile) == NULL) {

break; // No se pudo volver a leer, el archivo de texto está vacío, finalice el ciclo

}

}

if (fgets(line, "%s) ", nombre de carpeta) != 1) { //Lee el nombre de la carpeta de la línea actual

continuar; //Si no se lee ningún contenido válido de la línea actual, omite el bucle actual

p >

}

//Construye el nombre y la ruta del archivo de texto

sprintf(fileName, "%s.txt", folderName);