Guest User

Untitled

a guest
Jun 25th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. import sys
  2. import tkinter as tk
  3. from tkinter import filedialog
  4. from tkinter import messagebox
  5. import re
  6.  
  7.  
  8. def clean_svg_file(content):
  9. replacement = content
  10. for nsName in tags:
  11. print(nsName)
  12. reg_xmlns = 'xmlns:' + nsName + '=".*?"\\s*'
  13. reg_tag = '<' + nsName + ':([^>]|[\\s])*?((\\/>)|(>[\\s\\S]*?<\\/' + nsName + ':.*?>))\\s*'
  14. reg_attr = nsName + ':.*?=".*?"\\s*'
  15. replacement = re.sub(reg_xmlns, '', replacement)
  16. replacement = re.sub(reg_tag, '', replacement)
  17. replacement = re.sub(reg_attr, '', replacement)
  18.  
  19. return replacement
  20.  
  21.  
  22. def file_save(text):
  23. f = filedialog.asksaveasfile(mode='w', defaultextension=".svg")
  24. if f is None: # asksaveasfile return `None` if dialog closed with "cancel".
  25. return
  26.  
  27. f.write(text)
  28. f.close()
  29. messagebox.showinfo("Information", "File has been cleaned.")
  30.  
  31.  
  32. def file_open():
  33. file_path = filedialog.askopenfilename(defaultextension=".svg")
  34. with open(file_path) as f:
  35. read_data = f.read()
  36. f.close()
  37. return read_data
  38.  
  39.  
  40. try:
  41. root = tk.Tk()
  42. root.withdraw()
  43. tags = ['inkscape', 'sodipodi', 'rdf', 'cc', 'dc', 'metadata']
  44.  
  45. file_data = file_open()
  46.  
  47. question = messagebox.askokcancel("Clean file", "Do you want to clean the file from "
  48. "'inkscape', 'sodipodi', 'rdf', 'cc', 'dc', 'metadata")
  49.  
  50. if question:
  51. cleaned = clean_svg_file(file_data)
  52. file_save(cleaned)
  53.  
  54.  
  55.  
  56. sys.exit(0)
  57. except:
  58. print(sys.exc_info()[0])
  59. messagebox.showerror("Error", "Could not clean file\n" + str(sys.exc_info()[0]))
  60. raise
  61. sys.exit(1)
Add Comment
Please, Sign In to add comment