Hanryu

extractskills.py

Feb 12th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.46 KB | None | 0 0
  1. #YAY! My first Python script!
  2. #sub routine to find the first instance of a skill name (passed) in a file (passed) and write it out
  3. def WriteSkill (skill, filename):
  4. s=-1 #so I can initialize the variable for later
  5. with open(filename) as f: #open the passed file name and load it into 'f'
  6. for line in f: #loop over each line in the file
  7. mystr=r''+re.escape(skill)+r':\s+(\d+) (\d\d)' #cobble together a regex
  8. s=re.search(mystr,line) #look for the string on that line and save the digits if you found it
  9. if s:
  10. outfile.write(s.group(1)+"."+s.group(2)+",") #write the string out
  11. break #about the for loop
  12. if s < 0: #is s still empty? then you didn't find anything, report 0 to the outfile
  13. outfile.write("0,")
  14. return
  15.  
  16. #subroutine that's ugly and just calls all the skill names, I should make this an array, but hey I'm working on it!
  17. def WriteAll (filename):
  18. outfile.write(re.search(r'(\d{4}-\d{2}-\d{2})',filename).group(1)+",") #write the date in the first cell extracted from the file name
  19. WriteSkill("Alchemy", filename)
  20. WriteSkill("Appraisal", filename)
  21. WriteSkill("Arcana", filename)
  22. WriteSkill("Athletics", filename)
  23. WriteSkill("Attunement", filename)
  24. WriteSkill("Augmentation", filename)
  25. WriteSkill("Bow", filename)
  26. WriteSkill("Brawling", filename)
  27. WriteSkill("Brigandine", filename)
  28. WriteSkill("Chain Armor", filename)
  29. WriteSkill("Crossbow", filename)
  30. WriteSkill("Debilitation", filename)
  31. WriteSkill("Defending", filename)
  32. WriteSkill("Enchanting", filename)
  33. WriteSkill("Engineering", filename)
  34. WriteSkill("Evasion", filename)
  35. WriteSkill("First Aid", filename)
  36. WriteSkill("Forging", filename)
  37. WriteSkill("Heavy Thrown", filename)
  38. WriteSkill("Large Blunt", filename)
  39. WriteSkill("Large Edged", filename)
  40. WriteSkill("Life Magic", filename)
  41. WriteSkill("Light Armor", filename)
  42. WriteSkill("Light Thrown", filename)
  43. WriteSkill("Locksmithing", filename)
  44. WriteSkill("Mechanical Lore", filename)
  45. WriteSkill("Melee Mastery", filename)
  46. WriteSkill("Missile Mastery", filename)
  47. WriteSkill("Offhand Weapon", filename)
  48. WriteSkill("Outdoorsmanship", filename)
  49. WriteSkill("Outfitting", filename)
  50. WriteSkill("Parry Ability", filename)
  51. WriteSkill("Perception", filename)
  52. WriteSkill("Performance", filename)
  53. WriteSkill("Plate Armor", filename)
  54. WriteSkill("Polearms", filename)
  55. WriteSkill("Scholarship", filename)
  56. WriteSkill("Scouting", filename)
  57. WriteSkill("Shield Usage", filename)
  58. WriteSkill("Skinning", filename)
  59. WriteSkill("Slings", filename)
  60. WriteSkill("Small Blunt", filename)
  61. WriteSkill("Small Edged", filename)
  62. WriteSkill("Sorcery", filename)
  63. WriteSkill("Staves", filename)
  64. WriteSkill("Stealth", filename)
  65. WriteSkill("Tactics", filename)
  66. WriteSkill("Targeted Magic", filename)
  67. WriteSkill("Thievery", filename)
  68. WriteSkill("Twohanded Blunt", filename)
  69. WriteSkill("Twohanded Edged", filename)
  70. WriteSkill("Utility", filename)
  71. WriteSkill("Warding", filename)
  72. outfile.write("\n") #put a return at the end of that row
  73. return
  74.  
  75. import re #load regex (or so the internet tells me)
  76. outfile = open("output.csv","a") #open the output file for appending
  77. WriteAll("Hanryu-DR-2016-12-25.txt") #file to scan, must be in same folder as script
  78. close("output.csv") #ya done!
Advertisement
Add Comment
Please, Sign In to add comment