convert source code files to pdf format in python

 1 import os
 2 import sys
 3 
 4 def find_file(root_dir, type):
 5     dirs_pool = [root_dir]
 6     dest_pool = []
 7 
 8     def scan_dir(directory):
 9         entries = os.walk(directory)
10         for root, dirs, files in entries:
11             dirs_pool.extend([os.path.join(root, dir_entry) for dir_entry in dirs])
12             for file_entry in files:
13                 if type in str(file_entry)[-len(type):]:
14                     dest_pool.append(''.join(os.path.join(root, file_entry)))
15 
16     while dirs_pool:
17         scan_dir(dirs_pool.pop())
18     return dest_pool
19 
20 def gen_ps(root_dir, type):
21     vim_cmd = 'vim -me -e -c ":hardcopy >%.ps" -c ":q" '
22     ps2pdf_cmd = 'ps2pdf {filename}.ps {filename}.pdf'
23     dests = find_file(root_dir, type)
24     if not dests:
25         return
26     print 'found these source code files:'
27     for dest in dests:
28         print dest
29     print 'begin generate ps files!'
30     for dest in dests:
31         command = ''.join([vim_cmd, dest])
32         print command
33         os.system(command)
34     for dest in dests:
35         command = ps2pdf_cmd.format(filename=dest)
36         print command
37         os.system(command)
38 
39 if __name__ == '__main__':
40     if len(sys.argv) == 3:
41         gen_ps(sys.argv[1], sys.argv[2])
42     else:
43         print 'usage: python code2pdf.py directory filetype
' 
44               'such as: python code2pdf.py /home/bruce/python .py'
原文地址:https://www.cnblogs.com/ydlme/p/4330913.html