import shutil
import os
path = "C:\\Users\\dell\\Desktop\\archives\\"
file_path1 = "E:\\Temporary\\python\\"
file_path2 = "E:\\Files\\University study\\SE\\"
file_archive = []
file_archive.append(file_path1)
file_archive.append(file_path2)
file_label = [".py", ".h", ".c", ".cpp", ".java", ".m"]
counter = 1
total_line = 0
def calculate(filename):
global counter
global total_line
newName = path + filename[filename.rfind('\\')+1:filename.rfind('.')] + str(counter) + ".txt" # 更改文件后缀名为txt
shutil.copyfile(filename, newName) # 将文件拷贝到工作区
myfile = open(newName, 'rb') # 以rb方式打开文件
lines = len(myfile.readlines()) # 计算单个文件的行数
total_line += lines # 加入到总行数
counter += 1 # 计数器加1
def visitDir(path):
global file_label
if not os.path.isdir(path):
print('Error: "', path, '" is not a directory or does not exist.')
return
else:
try:
for lists in os.listdir(path):
sub_path = os.path.join(path, lists)
flag = 0
for i in range(len(file_label)):
if file_label[i] == sub_path[sub_path.rfind("."):]:
flag = 1
break
if flag == 1:
calculate(sub_path)
if os.path.isdir(sub_path):
visitDir(sub_path)
except:
pass
if __name__ == '__main__':
x = 0
for i in range(len(file_archive)):
visitDir(file_archive[i])
# visitDir(file_path2)
print("文件数:", counter, "\n总行数:", total_line)