-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDataClassfication
More file actions
163 lines (80 loc) · 3.98 KB
/
DataClassfication
File metadata and controls
163 lines (80 loc) · 3.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# 文献分类整理脚本功能:
# 1、将原始数据文件路径:./data/目录名(待分类数据);
# 2、有标点文献保存到: ./data/整理结果/目录名/1 标点
# 3、句读的文献保存到: ./data/整理结果/目录名/2 句读
# 4、无标点的文献存到: ./data/整理结果/目录名/3 无标点
# 4、无标点的文献存到: ./data/整理结果/目录名/4 其他标点
# 5、详细清单保存到: ./data/整理结果/目录名/
import os, shutil, string
from openpyxl import Workbook
docum_name = "佛藏/"
docum_path = "d:/data/"
if __name__=='__main__':
numb = 0
work_dir = docum_path + docum_name
print (work_dir)
path1 = docum_path + '整理结果/' + docum_name + '1 标点文件/'
path2 = docum_path + '整理结果/' + docum_name + '2 句读文献/'
path3 = docum_path + '整理结果/' + docum_name + '3 无标点文献/'
path4 = docum_path + '整理结果/' + docum_name + '4 其他标点文献/'
store_path = ['amitabha', path1, path2, path3, path4 ]
if not os.path.exists(path1):
os.makedirs( path1 )
if not os.path.exists(path2):
os.makedirs( path2 )
if not os.path.exists(path3):
os.makedirs( path3 )
if not os.path.exists(path4):
os.makedirs( path4 )
listpath_xlsx = docum_path + '整理结果/' + docum_name + "文献清单.xlsx"
wkbk = Workbook()
wksht = wkbk.active
title = ['序号', '文件名', '类型', '字数', '文件大小', '所在路径']
for i in range(len(title)):
wksht.cell( 1, i+1 ).value = title[i]
for parent, dirnames, filenames in os.walk( work_dir, followlinks = True ):
for filename in filenames:
file_path = os.path.join( parent, filename )
numb += 1
filsiz = os.path.getsize( file_path ) # 文件大小
fi = open( file_path,"r",encoding = 'utf-8')
str = fi.readline()
print ( str )
words_num = a = b = c = 0
for line in fi:
words_num += len(line) # 总字数(包括标点)
a += line.count(',') # 逗号个数
b += line.count('。') # 句号个数
c += line.count('.')
if a < 20:
a = 0 # 逗号个数少于20强制为0,有时句读和无标点文献会有个别逗号
if b < 20:
b = 0 # 句号个数少于20强制为0,有时句读和无标点文献会有个别逗号
v1 = a * b
v2 = a + b
if v1:
if a/words_num <0.01:
typ = 4;
file_type = "其他"
else:
typ = 1; # 累积逗号和句号都不为零,判断为标点过的文献
file_type = "标点"
elif v2:
if c != 0:
typ = 4;
file_type = "其他"
elif b == 0:
typ = 3;
file_type = "无标点"
else:
typ = 2; # 累积逗号为零,句号不为零,判断为句读文献
file_type = "句读"
else:
typ = 3; # 累积逗号和句号都为零,判断为未标点过的文献
file_type = "无标点"
dist_path = store_path[typ] + filename
shutil.copyfile( file_path, dist_path ) # 将文件拷贝到分类文件夹
row = [ numb, filename, file_type, words_num, filsiz, file_path ]
for i in range( len(row) ):
wksht.cell( numb+1, i+1 ).value = row[i] # 写入Excel表单
wkbk.save( listpath_xlsx )