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\n‘ 44 ‘such as: python code2pdf.py /home/bruce/python .py‘
时间: 2024-12-16 14:33:22