string_utils.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/usr/bin/env /usr/bin/python3
  2. # -*- coding:utf-8 -*-
  3. import re
  4. def camel_case_to_pascal_case(camel_case: str):
  5. """
  6. 小驼峰转大驼峰(帕斯卡)
  7. Args:
  8. camel_case:
  9. Returns:
  10. """
  11. return camel_case[0].upper() + camel_case[1:]
  12. def camel_case_to_snake_case(camel_case: str):
  13. """
  14. 小驼峰转蛇形
  15. Args:
  16. camel_case:
  17. Returns:
  18. """
  19. return pascal_case_to_snake_case(camel_case_to_pascal_case(camel_case))
  20. def pascal_case_to_camel_case(pascal_case: str):
  21. """
  22. 大驼峰(帕斯卡)转小驼峰
  23. Args:
  24. pascal_case:
  25. Returns:
  26. """
  27. return pascal_case[0].lower() + pascal_case[1:]
  28. def pascal_case_to_snake_case(pascal_case: str):
  29. """
  30. 大驼峰(帕斯卡)转蛇形
  31. Args:
  32. pascal_case:
  33. Returns:
  34. """
  35. matcher = re.match('^[A-Z_1-9]+$', pascal_case)
  36. if matcher:
  37. return pascal_case.lower()
  38. snake_case = re.sub(r"(?P<key>[A-Z])", r"_\g<key>", pascal_case)
  39. return snake_case.lower().strip('_')
  40. def snake_case_to_camel_case(snake_case: str):
  41. """
  42. 蛇形转小驼峰
  43. Args:
  44. snake_case:
  45. Returns:
  46. """
  47. return pascal_case_to_camel_case(snake_case_to_pascal_case(snake_case))
  48. def snake_case_to_pascal_case(snake_case: str):
  49. """
  50. 蛇形转大驼峰(帕斯卡)
  51. Args:
  52. snake_case:
  53. Returns:
  54. """
  55. words = snake_case.split('_')
  56. return ''.join(word.title() for word in words)
  57. if __name__ == '__main__':
  58. # print(camel_case_to_pascal_case("myName"))
  59. # print(camel_case_to_snake_case("myName"))
  60. # print(pascal_case_to_camel_case("MyName"))
  61. # print(pascal_case_to_snake_case("MyName"))
  62. # print(snake_case_to_camel_case("my_name"))
  63. # print(snake_case_to_pascal_case("my_name"))
  64. topics = ['rm_m5e9ohd9695zv98xe',
  65. 'rm_m5ea0m50jb636kuj3',
  66. 'rm_m5ek119wt267943mo',
  67. 'rm_m5emn115a8pm0u13m',
  68. 'rm_m5enry3g64v459v17',
  69. 'rm_m5et20y5d19hv8osm',
  70. 'rm_m5eway82803f530jc',
  71. 'rm_m5exw672lw1p1d2k1']
  72. groups = ['c1', 'c2', 'c3']
  73. dts = ['20230316', '20230317', '20230318', '20230319', '20230320']
  74. for dt in dts:
  75. for g in groups:
  76. for t in topics:
  77. print(f"put 'himma_crm_dl:himma_signal','drds-hbase-crm_dl-prod-{g}@@{dt}','cf:dts-hbase-crm_dl-prod-{g}-{t}','OK'")
  78. print("\n\n")