Python实现打开指定文件夹,并在此文件夹下新建一个同名文件夹,批量将指定文件夹下的txt文件转word文件,word文件保存到新建的同名文件夹中
时间: 2024-05-12 14:20:39 浏览: 109
可以使用Python内置的os模块和docx模块来实现该功能。
首先,需要使用os模块打开指定文件夹,并在此文件夹下创建一个同名文件夹:
```python
import os
folder_path = r"C:\path\to\folder" # 指定文件夹路径
folder_name = os.path.basename(folder_path) # 获取文件夹名称
new_folder_path = os.path.join(folder_path, folder_name) # 新建文件夹的路径为当前文件夹下的同名文件夹
if not os.path.exists(new_folder_path): # 如果新建文件夹不存在,则创建
os.makedirs(new_folder_path)
```
接下来,可以使用docx模块批量将指定文件夹下的txt文件转word文件,并将word文件保存到新建的同名文件夹中:
```python
import os
import docx
folder_path = r"C:\path\to\folder" # 指定文件夹路径
folder_name = os.path.basename(folder_path) # 获取文件夹名称
new_folder_path = os.path.join(folder_path, folder_name) # 新建文件夹的路径为当前文件夹下的同名文件夹
if not os.path.exists(new_folder_path): # 如果新建文件夹不存在,则创建
os.makedirs(new_folder_path)
for file_name in os.listdir(folder_path): # 遍历指定文件夹下的所有文件
if file_name.endswith(".txt"): # 如果文件是txt文件
txt_file_path = os.path.join(folder_path, file_name) # 获取txt文件的路径
word_file_name = os.path.splitext(file_name)[0] + ".docx" # 新建word文件的名称为txt文件的名称加上后缀".docx"
word_file_path = os.path.join(new_folder_path, word_file_name) # 新建word文件的路径为新建文件夹下的同名文件夹中
doc = docx.Document() # 创建一个空的word文档对象
with open(txt_file_path, "r", encoding="utf-8") as f: # 打开txt文件
lines = f.readlines() # 读取txt文件中的所有行
for line in lines: # 遍历txt文件中的每一行
doc.add_paragraph(line.strip()) # 在word文档对象中添加一个段落,内容为txt文件中的一行去掉首尾空白字符
doc.save(word_file_path) # 保存word文档对象为word文件
```
完整代码如下:
```python
import os
import docx
folder_path = r"C:\path\to\folder" # 指定文件夹路径
folder_name = os.path.basename(folder_path) # 获取文件夹名称
new_folder_path = os.path.join(folder_path, folder_name) # 新建文件夹的路径为当前文件夹下的同名文件夹
if not os.path.exists(new_folder_path): # 如果新建文件夹不存在,则创建
os.makedirs(new_folder_path)
for file_name in os.listdir(folder_path): # 遍历指定文件夹下的所有文件
if file_name.endswith(".txt"): # 如果文件是txt文件
txt_file_path = os.path.join(folder_path, file_name) # 获取txt文件的路径
word_file_name = os.path.splitext(file_name)[0] + ".docx" # 新建word文件的名称为txt文件的名称加上后缀".docx"
word_file_path = os.path.join(new_folder_path, word_file_name) # 新建word文件的路径为新建文件夹下的同名文件夹中
doc = docx.Document() # 创建一个空的word文档对象
with open(txt_file_path, "r", encoding="utf-8") as f: # 打开txt文件
lines = f.readlines() # 读取txt文件中的所有行
for line in lines: # 遍历txt文件中的每一行
doc.add_paragraph(line.strip()) # 在word文档对象中添加一个段落,内容为txt文件中的一行去掉首尾空白字符
doc.save(word_file_path) # 保存word文档对象为word文件
```
阅读全文