Python 3 | txt转Excel | 用拼音+数字对各个数据元编码 | 读取多个文件夹内容 | import xlwt + xpinyin + os
我在研零入学,倍受可爱师姐欺负,各种梳理表格的杂活,所以有此博客。 我事先把word里的数据复制出来放在了txt中。有多个文件夹,每个文件夹中有多个txt。 1、由于之前导入doc文件不会,所以用来txt;doc转docx在下篇博客中有; 2、研究生杂活多怎么办?写代码啊! 3、python读取txt文档 4、python编写excel 5、python读取多个文档内容
姊妹篇
python 3| docx的读写 | excel的读 | word行中添加新的key-value - 我是一块小石头 - 博客 https://blog.csdn.net/stone_fall/article/details/96428915 python 3 | doc转docx - 我是一块小石头 - 博客 https://blog.csdn.net/stone_fall/article/details/96428876 Python 3 | txt转Excel | 用拼音+数字对各个数据元编码 | 读取多个文件夹内容 | import xlwt + xpinyin + os - 我是一块小石头 - 博客 https://blog.csdn.net/stone_fall/article/details/96428734
数据格式
4.1 xxxxx
key1:value
key2:。。
key3:。
key4:。
key5:。
key6:。
key7:。
key8:。
key9:。
key10:。
-----------------------------------------------------
key1:value
key2:。。
key3:。
key4:。
key5:。
key6:。
key7:。
key8:。
key9:。
key10:。
-----------------------------------------------------
……
python3代码如下
import os
import xlwt
import xlrd
from xpinyin
import Pinyin
original_data_path
= 'xxxxxxxxx\\original\\'
final_data_path
= 'xxxxxxxxx\\final\\'
dirs
= os
.listdir
(original_data_path
)
myDict
= dict()
for file_dir
in dirs
:
tmp_dir
= os
.path
.join
(original_data_path
,file_dir
)
if os
.path
.isdir
(tmp_dir
):
print(tmp_dir
)
txt_dirs
= os
.listdir
(tmp_dir
)
result_dir
= os
.path
.join
(final_data_path
,file_dir
)
print(result_dir
)
if not os
.path
.exists
(result_dir
):
os
.mkdir
(result_dir
)
for txt_name
in txt_dirs
:
tmp_txt_dir
= os
.path
.join
(tmp_dir
,txt_name
)
print(tmp_txt_dir
)
excel_name
= os
.path
.basename
(tmp_txt_dir
).split
('.')[0] + '.xls'
excel_dir
= os
.path
.join
(final_data_path
,file_dir
,excel_name
)
print(excel_dir
)
file = xlwt
.Workbook
(encoding
='utf-8', style_compression
=0)
sheet
= file.add_sheet
('data')
fopen
= open(tmp_txt_dir
, 'r')
lines
= fopen
.readlines
()
count
= 11
p
= Pinyin
()
sheet
.write
(0, 0, '1')
sheet
.write
(0, 1, '2')
sheet
.write
(0, 2, '3')
sheet
.write
(0, 3, '4')
sheet
.write
(0, 4, '5')
sheet
.write
(0, 5, '6')
sheet
.write
(0, 6, '7')
sheet
.write
(0, 7, '8')
sheet
.write
(0, 8, '9')
sheet
.write
(0, 9, '10')
sheet
.write
(0, 10, '11')
for line
in lines
:
line
= line
.strip
('\n')
line
= line
.strip
()
if len(line
) == 0:
continue
line
= line
.split
(':', 1)
if len(line
) == 1:
continue
if count
% 11 == 2:
count
= count
+ 1
i
= count
% 11
j
= count
// 11
value
= ''.join
(line
[1:])
sheet
.write
(j
, i
, value
)
if i
== 0:
if value
in myDict
:
print('value in myDict, value is %s' % value
)
num
= myDict
[value
] + 1
myDict
[value
] = num
else:
num
= 1
myDict
[value
] = num
tmp
= p
.get_initials
(value
, u
'')
tmp
= tmp
+ str(num
).zfill
(2)
sheet
.write
(j
, i
+2, tmp
)
count
= count
+ 1
file.save
(excel_dir
)