编写一个python脚本,读取当前目录以及子目录下所有txt文件的第一行内容,以冒号左面的字符串为列名,以冒号右面的字符串为列值,相同文件夹的内容输出至同一个sheet,sheet以文件夹命名,并输出至一个xls文件
时间: 2024-05-11 14:19:42 浏览: 50
Python读取txt内容写入xls格式excel中的方法
请注意,由于这个任务需要读取文件,我们需要使用Python内置的os和xlwt库,而xlwt库需要额外安装,可以使用pip命令安装:
```python
pip install xlwt
```
以下是完整的代码实现:
```python
import os
import xlwt
def get_file_content(file_path):
'''
获取文件第一行内容
'''
with open(file_path, 'r') as f:
content = f.readline().strip()
return content
def get_folder_files(folder_path):
'''
获取目录下所有txt文件
'''
files = []
for file in os.listdir(folder_path):
if file.endswith('.txt'):
files.append(os.path.join(folder_path, file))
return files
def get_folder_content(folder_path):
'''
获取目录下所有txt文件的第一行内容
'''
folder_content = []
files = get_folder_files(folder_path)
for file in files:
content = get_file_content(file)
folder_content.append(content)
return folder_content
def write_to_excel(file_dict):
'''
将文件内容写入Excel文件
'''
workbook = xlwt.Workbook(encoding='utf-8')
for folder_name, folder_content in file_dict.items():
sheet = workbook.add_sheet(folder_name)
for i in range(len(folder_content)):
content = folder_content[i].split(':')
sheet.write(i, 0, content[0])
sheet.write(i, 1, content[1])
workbook.save('file_content.xls')
def main():
file_dict = {}
for folder_name in os.listdir('.'):
if os.path.isdir(folder_name):
folder_content = get_folder_content(folder_name)
file_dict[folder_name] = folder_content
write_to_excel(file_dict)
if __name__ == '__main__':
main()
```
代码实现的思路是:
1. 定义一个函数 `get_file_content`,用于获取文件的第一行内容。
2. 定义一个函数 `get_folder_files`,用于获取目录下所有的txt文件。
3. 定义一个函数 `get_folder_content`,用于获取目录下所有txt文件的第一行内容。
4. 定义一个函数 `write_to_excel`,用于将文件内容写入Excel文件。
5. 在 `main` 函数中,获取当前目录下的所有文件夹,并对每个文件夹调用 `get_folder_content` 函数获取文件内容,然后将结果保存在一个字典中。
6. 最后,调用 `write_to_excel` 函数将文件内容写入Excel文件。
请确保在运行代码之前,当前目录下至少有一个文件夹,且该文件夹中至少有一个txt文件。
阅读全文