用Windows脚本程序生成一个保存当前文件夹下子文件的文件名,按行保存在当前路径下的表格中文件
时间: 2024-02-18 22:05:07 浏览: 24
您可以使用以下的 Windows 脚本程序来生成保存当前文件夹下子文件的文件名,并将其保存在当前路径下的表格中文件中:
```batch
@echo off
setlocal EnableDelayedExpansion
set "output=%cd%\files.csv"
echo "Name","Path">"%output%"
for /r %%i in (*) do (
set "name=%%~nxi"
set "path=%%~dpi"
echo "!name!","!path!">>"%output%"
)
echo "The file list has been saved to %output%"
```
将以上代码保存为 `.bat` 文件,然后双击运行即可在当前路径下生成 `files.csv` 文件,其中包含了当前文件夹下所有子文件的文件名和路径。文件内容为 CSV 格式,每行为一个子文件,第一列为文件名,第二列为路径。
相关问题
帮我生成一个python脚本,从指定文件夹批量提取txt指定文本到excel
### 回答1:
好的,我可以回答这个问题。您可以使用Python中的os和xlwt库来实现这个功能。以下是一个简单的示例代码:
```
import os
import xlwt
# 指定文件夹路径和要提取的文本
folder_path = "your_folder_path"
target_text = "your_target_text"
# 创建Excel文件和工作表
workbook = xlwt.Workbook(encoding="utf-8")
worksheet = workbook.add_sheet("Text Extraction")
# 设置表头
worksheet.write(, , "File Name")
worksheet.write(, 1, "Text")
# 遍历文件夹中的所有txt文件
row = 1
for filename in os.listdir(folder_path):
if filename.endswith(".txt"):
file_path = os.path.join(folder_path, filename)
with open(file_path, "r", encoding="utf-8") as f:
# 读取文件内容
file_content = f.read()
# 查找目标文本
if target_text in file_content:
# 将文件名和目标文本写入Excel表格中
worksheet.write(row, , filename)
worksheet.write(row, 1, target_text)
row += 1
# 保存Excel文件
workbook.save("text_extraction.xls")
```
您需要将代码中的"your_folder_path"和"your_target_text"替换为您自己的文件夹路径和目标文本。此代码将在指定文件夹中查找所有txt文件,并将包含目标文本的文件名和目标文本写入Excel表格中。
### 回答2:
当然,下面是一个用Python编写的脚本,可以从指定文件夹中批量提取txt文件中的指定文本,并将其导出到Excel表格中:
```python
import os
import glob
import openpyxl
def extract_text_from_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
content = file.read()
# 在这里添加提取文本的逻辑,可以使用正则表达式或其他方法来匹配需要提取的文本
# 提取的文本可以存储到一个列表中,如texts.append(extracted_text)
# 这里只是一个示例:
extracted_text = content.split(' ')
return extracted_text
def extract_text_from_folder(folder_path):
texts = []
for file_path in glob.glob(os.path.join(folder_path, '*.txt')):
extracted_text = extract_text_from_file(file_path)
texts.extend(extracted_text)
return texts
def export_to_excel(texts):
wb = openpyxl.Workbook()
sheet = wb.active
for i, text in enumerate(texts, start=1):
sheet.cell(row=i, column=1, value=text)
wb.save('extracted_text.xlsx')
if __name__ == '__main__':
folder_path = '指定文件夹的路径'
texts = extract_text_from_folder(folder_path)
export_to_excel(texts)
```
使用这个脚本,请确保已经安装了`openpyxl`库,可以使用`pip install openpyxl`命令进行安装。另外,您需要将`folder_path`变量替换为您要提取txt文件的文件夹路径。
这个脚本首先定义了两个函数`extract_text_from_file`和`extract_text_from_folder`,分别用于从单个txt文件提取文本和遍历指定文件夹提取全部txt文件的文本。然后使用`export_to_excel`函数将提取的文本保存到Excel文件中。
希望这个脚本对您有所帮助!如果有任何问题,请随时提问。
### 回答3:
你好!以下是一个简单的Python脚本示例,可以从指定文件夹中批量提取txt文件中的指定文本并保存到Excel文件中。
```python
import os
import openpyxl
# 指定文件夹路径
folder_path = "指定文件夹路径"
# 创建Excel文件
workbook = openpyxl.Workbook()
sheet = workbook.active
# 设置要提取的文本
target_text = "指定文本"
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
if filename.endswith(".txt"):
file_path = os.path.join(folder_path, filename)
# 打开文本文件并按行读取内容
with open(file_path, "r") as file:
lines = file.readlines()
# 遍历每一行
for line in lines:
# 如果找到目标文本则写入Excel中
if target_text in line:
row = (filename, line)
sheet.append(row)
# 保存Excel文件
workbook.save("提取结果.xlsx")
```
请将代码中的`指定文件夹路径`修改为你需要操作的文件夹路径,将`指定文本`修改为你要提取的目标文本。运行脚本后,将会在当前目录下生成一个名为`提取结果.xlsx`的Excel文件,其中包含了每个txt文件中包含目标文本的行。请确保已安装`openpyxl`库,可以通过`pip install openpyxl`命令进行安装。
希望对你有帮助!如果有任何问题,请随时提问。
katalon写一个Groovy脚本,利用java-diff-util库来实现两个文件夹的自动比较,并将结果以html形式输出。当文件在两个文件夹中都存在,但内容不一致,则将差异数据的行数及内容出力到html中;当文件只在一个文件夹中存在,将信息输出到html中。要求能识别隔行数据,按文件名生成结果html,html里显示两个文件夹的差异内容,哪个字段有差异,就将差异高亮显示
以下是一个示例脚本,可以实现你的要求:
```groovy
import difflib.*
import java.nio.file.*
import java.nio.charset.*
import groovy.xml.*
// 定义比较结果的HTML文件名
def outputFileName = "diff_result.html"
// 定义比较的两个文件夹路径
def folder1Path = "path/to/folder1"
def folder2Path = "path/to/folder2"
// 定义HTML模板
def htmlTemplate = """
<html>
<head>
<style>
.added, .deleted, .changed { background-color: #FFFFCC; }
.added { font-weight: bold; }
.deleted { text-decoration: line-through; }
table { border-collapse: collapse; }
td { border: 1px solid black; padding: 5px; }
</style>
</head>
<body>
%s
</body>
</html>
"""
// 按文件名比较两个文件夹
def compareFolders = { folder1Path, folder2Path ->
// 获取文件列表
def folder1Files = Files.list(Paths.get(folder1Path)).map { it.getFileName().toString() }.toList()
def folder2Files = Files.list(Paths.get(folder2Path)).map { it.getFileName().toString() }.toList()
// 找到所有存在于两个文件夹中的文件
def commonFiles = folder1Files.intersect(folder2Files)
// 找到只存在于一个文件夹中的文件
def onlyInFolder1 = folder1Files.minus(commonFiles)
def onlyInFolder2 = folder2Files.minus(commonFiles)
// 生成HTML表格
def tableRows = ""
// 处理存在于两个文件夹中的文件
commonFiles.each { fileName ->
def path1 = Paths.get(folder1Path, fileName)
def path2 = Paths.get(folder2Path, fileName)
// 比较文件内容
def file1List = Files.readAllLines(path1, StandardCharsets.UTF_8)
def file2List = Files.readAllLines(path2, StandardCharsets.UTF_8)
def patch = DiffUtils.diff(file1List, file2List)
def patchView = UnifiedDiffUtils.generateUnifiedDiff(fileName, fileName, file1List, patch, 3)
// 生成HTML行
if (patch.getDeltas().size() > 0) {
tableRows += """
<tr>
<td>${fileName}</td>
<td colspan="2">文件内容不同</td>
</tr>
"""
patch.getDeltas().each { delta ->
def added = delta.getRevised().getLines().collect { "<tr><td></td><td></td><td class='added'>${it}</td></tr>" }.join()
def deleted = delta.getOriginal().getLines().collect { "<tr><td></td><td class='deleted'>${it}</td><td></td></tr>" }.join()
def unchanged = delta.getOriginal().getLines().collect { "<tr><td>${delta.getOriginal().getPosition() + it + 1}</td><td>${it}</td><td>${delta.getRevised().getLines().get(it)}</td></tr>" }.join()
tableRows += added + deleted + unchanged
}
}
}
// 处理只存在于一个文件夹中的文件
onlyInFolder1.each { fileName ->
tableRows += """
<tr>
<td>${fileName}</td>
<td>只存在于文件夹1</td>
<td></td>
</tr>
"""
}
onlyInFolder2.each { fileName ->
tableRows += """
<tr>
<td>${fileName}</td>
<td></td>
<td>只存在于文件夹2</td>
</tr>
"""
}
// 将HTML模板和表格拼接起来
return String.format(htmlTemplate, """
<table>
<tr>
<th>文件名</th>
<th>文件夹1</th>
<th>文件夹2</th>
</tr>
${tableRows}
</table>
""")
}
// 生成比较结果的HTML文件
def outputFile = Paths.get(outputFileName)
Files.write(outputFile, compareFolders(folder1Path, folder2Path).getBytes(StandardCharsets.UTF_8))
// 输出比较结果的HTML文件路径
println("比较结果已保存到: ${outputFile.toAbsolutePath()}")
```
这个脚本会比较两个文件夹中的所有文件,并将比较结果以HTML形式输出。如果文件在两个文件夹中都存在,但内容不一致,则会将差异数据的行数及内容输出到HTML中;如果文件只在一个文件夹中存在,则会将信息输出到HTML中。同时,它会识别隔行数据,并按文件名生成结果HTML,HTML里显示两个文件夹的差异内容,哪个字段有差异,就将差异高亮显示。