查看文件夹内的文件数并写入txt

此篇博客展示了CUFED数据集中的ref和input文件数量,便于理解数据规模。通过代码列出ref文件夹的长度和input文件夹的长度,用于后续数据预处理和分析工作。

import os

target_path='/content/drive/MyDrive/srntt-pytorch-master/data/CUFED/ref'

target_path2='/content/drive/MyDrive/srntt-pytorch-master/data/CUFED/input'

all_content=os.listdir(target_path)

all_content2=os.listdir(target_path2)

print('All ref numbers is',len(all_content))

print('All input numbers is',len(all_content2))

# count_num=1

# file = open('/content/drive/MyDrive/srntt-pytorch-master/data/CUFED/b.txt','w')

# for content in all_content2:

#     file.write(str(count_num) + '---------'+content + '\n')

#     count_num+=1


 

在MFC中,提取指定文件夹内所有 `.txt` 文件的内容,将这些内容存储到 `vector` 中,可以结合 `CFileFind` 类遍历文件夹中的文件,使用 `CStdioFile` 类读取文本文件内容,将其存储到合适的容器结构中。以下是一个完整的实现示例: ```cpp #include <vector> #include <string> #include <afx.h> // MFC 核心头文件 #include <afxwin.h> // MFC 应用程序框架头文件 using namespace std; void ReadAllTxtFilesFromFolder(const CString& folderPath, vector<string>& allLines) { CFileFind finder; CString searchPath = folderPath + _T("\\*.txt"); BOOL bWorking = finder.FindFile(searchPath); while (bWorking) { bWorking = finder.FindNextFile(); if (finder.IsDirectory() || finder.IsDots()) continue; CString filePath = finder.GetFilePath(); CStdioFile file; if (file.Open(filePath, CFile::modeRead)) { CString line; while (file.ReadString(line)) { // 将CString转换为std::string CT2CA pszConvertedAnsiString(line); string strStd(pszConvertedAnsiString); allLines.push_back(strStd); } file.Close(); } } finder.Close(); } ``` ### 使用说明 1. **函** - `folderPath`:指定的文件夹路径(如 `"C:\\MyFolder"`)。 - `allLines`:用于存储所有读取到的文本行的 `vector<string>` 容器。 2. **功能说明** - 使用 `CFileFind` 遍历指定路径下的所有 `.txt` 文件。 - 使用 `CStdioFile` 打开每个 `.txt` 文件逐行读取。 - 每行内容通过 `CString` 转换为 `std::string` 后,存入 `vector<string>` 容器中。 3. **字符编码处理** - `CT2CA` 是 MFC 提供的宏,用于将 `CString`(Unicode 或 ANSI)转换为 ANSI 字符串,便于与 `std::string` 兼容[^3]。 ### 示例调用 ```cpp vector<string> fileContents; ReadAllTxtFilesFromFolder(_T("C:\\MyFolder"), fileContents); // 输出所有读取的内容 for (const auto& line : fileContents) { cout << line << endl; } ``` ### 注意事项 - 确保项目设置中启用 MFC 支持,包含必要的头文件。 - 若文件内容包含中文字符,建议使用 `std::wstring` 和 `CStringW` 配合宽字符处理,以避免编码问题。 - 若需要按文件区分内容,可以将 `vector<string>` 替换为 `vector<vector<string>>` 来区分不同文件据[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值