首 页 行业热点 新车 试驾评测 养车用车 车型库

易语言如何写到文件创建txt新文件?

发布网友

我来回答

1个回答

热心网友

最简单的办法是一次性将文件内容读出并保存。
方法一:python实现
import os

text_file_path = 'd:\\123.txt' # 定义文本文件路径
folder_path = 'd:\\ceshi' # 定义文件夹路径
with open(text_file_path, 'r') as f: # 读取文本文件内容,返回一个包含每行文本的列表
content = f.readlines()
folders = os.listdir(folder_path) # 获取文件夹列表
for i in range(len(folders)): # 遍历文件夹列表,创建文本文件并写入内容
file_name = folders[i] + '.txt' # 构造文本文件路径和文件名
file_path = os.path.join(folder_path, folders[i], file_name)
with open(file_path, 'w') as f: #写入文本文件
f.writelines(content)
首先读取指定的文本文件,获取每行文本内容。然后获取指定文件夹下的所有子文件夹列表,依次遍历每个文件夹,构造文本文件路径和文件名,并将读取到的文本内容写入到该文件中。
方法二:java实现
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
String textFilePath = "d:\\123.txt"; // 文本文件路径
String folderPath = "d:\\ceshi"; // 文件夹路径
try (BufferedReader br = new BufferedReader(new FileReader(textFilePath))) {
String line = null;
int folderCount = 0; // 当前已遍历的文件夹数
for (String folderName : Paths.get(folderPath).toFile().list()) { // 遍历文件夹列表
if (!Paths.get(folderPath, folderName).toFile().isDirectory()) {
continue; // 若当前路径不是文件夹,则跳过
}
// 构造文本文件路径和文件名
String fileName = folderName + ".txt";
String filePath = Paths.get(folderPath, folderName, fileName).toString();
try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath))) {
while ((line = br.readLine()) != null) { // 逐行读取文本文件中的内容
bw.write(line); // 将读取到的内容写入到当前文件
bw.newLine(); // 写入换行符
}
folderCount++;
System.out.println("已写入 " + folderCount + " 个文本文件。");
} catch (IOException e) {
e.printStackTrace();
}
br.reset(); // 重置读取位置
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
先定义了文本文件路径 textFilePath 和文件夹路径 folderPath。然后使用 BufferedReader 逐行读取文本文件中的内容,并使用 BufferedWriter 将读取到的内容写入到每个子文件夹下的新建文本文件中。最后输出已写入的文本文件数量。
方法三:C语言实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LEN 1024
int main(void) {
FILE *textFile;
char line[MAX_LINE_LEN];
char *textFilePath = "d:\\123.txt"; // 文本文件路径
char *folderPath = "d:\\ceshi"; // 文件夹路径
if ((textFile = fopen(textFilePath, "r")) == NULL) { // 打开文本文件
printf("Failed to open text file.\n");
return -1;
}
int folderCount = 0; // 当前已遍历的文件夹数
char folderName[256];
char fileName[256];
char filePath[512];
sprintf(filePath, "%s\\%s", folderPath, folderName); // 构造文件夹路径
while (1) {
if (fgets(line, MAX_LINE_LEN, textFile) == NULL) { // 读取文本文件中的一行
fseek(textFile, 0L, SEEK_SET); // 如果读取到文件结尾,就将文件指针重新移动到文件开头
if (fgets(line, MAX_LINE_LEN, textFile) == NULL) {
break; // 再次读取失败,则说明文本文件为空,结束循环
}
}
if (sscanf(line, "%s", folderName) != 1) { // 从当前行中读取文件夹名称
continue; // 如果当前行没有读取到有效内容,则跳过当前循环
}
// 构造文本文件名和路径
sprintf(fileName, "%s.txt", folderName);
sprintf(filePath, "%s\\%s\\%s", folderPath, folderName, fileName);
FILE *txtFile;
if ((txtFile = fopen(filePath, "w")) == NULL) { // 打开文本文件
printf("Failed to open text file.\n");
continue; // 如果打开文本文件失败,则跳过当前循环
}
fputs(line, txtFile); // 将读取到的内容写入到当前文本文件中
while (fgets(line, MAX_LINE_LEN, textFile) != NULL) { // 继续读取文本文件中的内容
fputs(line, txtFile);
}
fclose(txtFile);
folderCount++;
printf("已写入 %d 个文本文件。\n", folderCount);
}
fclose(textFile);
return 0;
}
输出结果与上述JAVA实现方式一致。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com