[Lenguaje simple] Escritura por lotes de archivos txt en diferentes nombres de carpeta según el contenido de la secuencia de texto
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>
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);