使用python想写一个能获得文件夹内所有文件名字,并写入Excel的脚本
时间: 2023-02-17 08:17:09 浏览: 164
你可以使用 Python 的 os 模块来获取文件夹中的文件名。例如:
```
import os
# 获取文件夹中的文件名
folder = '/path/to/folder'
filenames = os.listdir(folder)
print(filenames)
```
然后,你可以使用 Python 的 openpyxl 库来写入 Excel 文件。例如:
```
import openpyxl
# 创建新的 Excel 文件
workbook = openpyxl.Workbook()
# 获取工作表
worksheet = workbook.active
# 循环文件名列表并写入工作表
for i, filename in enumerate(filenames):
cell = worksheet.cell(row=i+1, column=1)
cell.value = filename
# 保存 Excel 文件
workbook.save('filenames.xlsx')
```
希望这能帮到你!
相关问题
如何使用Python高效地将文件夹中的所有文件名写入Excel并实现数据更新功能?
在Python中,可以使用`pandas`库结合`os`库来高效地将文件夹中的文件名写入Excel,并通过`openpyxl`库实现数据更新功能。以下是简单的步骤:
1. **安装所需库**:
首先需要安装`pandas`, `os`, 和 `openpyxl`,如果尚未安装,可以使用以下命令安装:
```
pip install pandas os openpyxl
```
2. **读取文件夹内容**:
使用`os`库的`listdir`函数获取指定文件夹下的所有文件和子目录名称。
3. **创建DataFrame**:
将文件名放入`pandas`的`DataFrame`结构,可以设置一列名为文件名,例如:
```python
import pandas as pd
def get_file_names(folder_path):
return [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
file_names = get_file_names('your_folder_path')
df = pd.DataFrame({'File Names': file_names})
```
4. **写入Excel**:
使用`to_excel`函数将`DataFrame`写入Excel文件:
```python
df.to_excel('file_names.xlsx', index=False)
```
5. **数据更新**:
如果需要定期或动态更新Excel中的文件列表,可以在定时任务、脚本循环或用户触发事件中调用上述过程。比如,你可以使用`watchdog`库来监控文件夹的变化,然后在有新文件添加或删除时自动更新Excel。
6. **示例完整代码**:
```python
import pandas as pd
import os
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class FileHandler(FileSystemEventHandler):
def on_modified(self, event):
if event.src_path.endswith('.xlsx'): # 只处理改动的excel文件
return
file_names = get_file_names('your_folder_path')
with pd.ExcelWriter('file_names.xlsx') as writer:
df = pd.DataFrame({'File Names': file_names})
df.to_excel(writer, sheet_name='Sheet1', index=False)
def get_file_names(folder_path):
return [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
# 初始化观察者和处理器
event_handler = FileHandler()
observer = Observer()
# 监听指定文件夹变化
observer.schedule(event_handler, 'your_folder_path', recursive=True)
observer.start()
try:
while True:
time.sleep(1) # 每秒检查一次更改
except KeyboardInterrupt:
observer.stop()
observer.join()
```
写一个python脚本,批量实现将一个文件夹内多个excel文件sheet1表单中的数据整合到一个表单中
要批量实现将一个文件夹内多个Excel文件(假设都是xlwt或openpyxl格式)的`sheet1`表单中的数据整合到一个新的Excel文件中,可以采用以下Python脚本:
首先,我们需要安装`openpyxl`库来读取Excel文件,因为它支持打开多种格式的文件。如果尚未安装,可以通过pip安装:
```shell
pip install openpyxl
```
然后,我们可以编写如下的脚本来执行这个任务:
```python
import os
import pandas as pd
# 定义源文件夹路径和目标文件路径
source_folder = "path_to_your_source_folder"
target_file = "merged_data.xlsx"
# 获取文件夹内所有Excel文件
files = [f for f in os.listdir(source_folder) if f.endswith('.xlsx') or f.endswith('.xls')]
# 初始化一个新的DataFrame用于合并数据
merged_df = pd.DataFrame()
# 循环遍历每个Excel文件
for file_name in files:
# 使用openpyxl读取数据
with pd.ExcelFile(os.path.join(source_folder, file_name), engine='openpyxl') as excel:
# 取得sheet1的数据
df_from_file = excel.parse('sheet1')
# 将数据添加到合并的DataFrame
merged_df = merged_df.append(df_from_file)
# 写入合并后的数据到目标文件
merged_df.to_excel(target_file, index=False)
print(f"所有Excel文件的'sheet1'数据已合并至'{target_file}'")
#
阅读全文