import os # 获取data文件夹的路径 data_folder = 'D:/PythonProject/jicheng/data_4' # 遍历data文件夹中的所有txt文件 for filename in sorted(os.listdir(data_folder)): if filename.endswith('.txt'): # 获取txt文件的名称所对应的整数 file_num = int(filename.split('.')[0]) # 打开txt文件并读取每一行 with open(os.path.join(data_folder, filename), 'r') as f: lines = f.readlines() # 将每一行最前面加上所对应的整数 lines = [str(file_num) + line for line in lines] # 将处理后的txt文件保存 with open(os.path.join(data_folder, filename), 'w') as f: f.writelines(lines) # 将所有txt文件按照命名顺序整合至一个文本文件 with open(os.path.join(data_folder, '0004.txt'), 'w') as f: for filename in sorted(os.listdir(data_folder)): if filename.endswith('.txt'): with open(os.path.join(data_folder, filename), 'r') as f2: f.write(f2.read())为什么执行上段脚本文件后,在生成的0004.txt文件中,本应以第313行(原本data_4z中有313个文件)结尾,却在313行后又以0开始一直集成到了第216个文本文件,你可以帮我重新写一下这个脚本文件以解决这个问题吗?
时间: 2024-03-10 10:46:32 浏览: 24
问题出在将所有txt文件整合至一个文本文件时,没有在每个文件内容末尾添加换行符,导致多个文件内容在合并后连成了一行。可以在每个文件内容末尾添加一个换行符,代码如下:
```
import os
data_folder = 'D:/PythonProject/jicheng/data_4'
# 遍历data文件夹中的所有txt文件
for filename in sorted(os.listdir(data_folder)):
if filename.endswith('.txt'):
# 获取txt文件的名称所对应的整数
file_num = int(filename.split('.')[0])
# 打开txt文件并读取每一行
with open(os.path.join(data_folder, filename), 'r') as f:
lines = f.readlines()
# 将每一行最前面加上所对应的整数
lines = [str(file_num) + line for line in lines]
# 将处理后的txt文件保存,每行末尾添加一个换行符
with open(os.path.join(data_folder, filename), 'w') as f:
f.writelines([line + '\n' for line in lines])
# 将所有txt文件按照命名顺序整合至一个文本文件
with open(os.path.join(data_folder, '0004.txt'), 'w') as f:
for filename in sorted(os.listdir(data_folder)):
if filename.endswith('.txt'):
with open(os.path.join(data_folder, filename), 'r') as f2:
f.write(f2.read())
# 在每个文件内容末尾添加一个换行符
f.write('\n')
```
这样就可以正确地将所有txt文件整合至一个文本文件了。