Program Tip

Snake 케이스를 Lower Camel Case로 변환 (lowerCamelCase)

programtip 2020. 12. 7. 20:34
반응형

Snake 케이스를 Lower Camel Case로 변환 (lowerCamelCase)


my_stringPython 2.7 에서 snake case ( )를 lower camel case (myString) 로 변환하는 좋은 방법은 무엇입니까 ?

확실한 해결책은 밑줄로 나누고 첫 번째 단어를 제외한 각 단어를 대문자로 한 다음 다시 합치는 것입니다.

그러나 나는 다른 더 관용적 인 솔루션이나 RegExp이것을 달성 하는 데 사용하는 방법이 궁금 합니다 (일부 대소 문자 수정 자 포함?)


def to_camel_case(snake_str):
    components = snake_str.split('_')
    # We capitalize the first letter of each component except the first one
    # with the 'title' method and join them together.
    return components[0] + ''.join(x.title() for x in components[1:])

예:

In [11]: to_camel_case('snake_case')
Out[11]: 'snakeCase'

다음은 Python 3.5 이상에서만 작동하는 또 다른 테이크입니다.

def camel(snake_str):
    first, *others = snake_str.split('_')
    return ''.join([first.lower(), *map(str.title, others)])

필수 한 줄 :

import string

def to_camel_case(s):
    return s[0].lower() + string.capwords(s, sep='_').replace('_', '')[1:] if s else s

>>> snake_case = "this_is_a_snake_case_string"
>>> l = snake_case.split("_")
>>> print l[0] + "".join(map(str.capitalize, l[1:]))
'thisIsASnakeCaseString'

또 하나의 라이너

def to_camel_case(snake_string):
    return snake_string.title().replace("_", "")

Steve의 답변을 바탕으로이 버전은 다음과 같이 작동합니다.

def to_camel_case(snake_case_string):
    titleCaseVersion =  snake_case_string.title().replace("_", "")
    camelCaseVersion = titleCaseVersion[0].lower() + titleCaseVersion[1:]
    return camelCaseVersion

다음은 정규식을 사용하는 솔루션입니다.

import re

def snake_to_camel(text):
    return re.sub('_([a-zA-Z0-9])', lambda m: m.group(1).upper(), text)

이것에 조금 늦었지만 며칠 전에 / r / python에서 이것을 발견했습니다.

pip install pyhumps

그런 다음 다음을 수행 할 수 있습니다.

import humps

humps.camelize('jack_in_the_box')  # jackInTheBox
# or
humps.decamelize('rubyTuesdays')  # ruby_tuesdays
# or
humps.pascalize('red_robin')  # RedRobin

def to_camel_case(snake_str):
    components = snake_str.split('_')
    return reduce(lambda x, y: x + y.title(), components[1:], components[0])

목록 이해를 사용하지 않고 :

def snake_to_camel_case(text_snake):
    return '{}{}'.format(
        text_snake[:1].lower(),
        text_snake.title().replace('_', '')[1:],
    )

There is also tocamelcase to easily convert from snake case to camel case.

Install

$ pip install tocamelcase

and then you can use it like this:

import tocamelcase

print(tocamelcase.convert("non_camel_case"))
# -> non_camel_case → NonCamelCase

There is also decamelize that is the inverse of this module.


So I needed to convert a whole file with bunch of snake case parameters into camel case. The solution by Mathieu Rodic worked best. Thanks.

Here is a little script to use it on files.

import re

f = open("in.txt", "r")
words = f.read()

def to_camel_case3(s):
    return re.sub(r'_([a-z])', lambda x: x.group(1).upper(), s)

f = open("out.txt", "w")
f.write(to_camel_case3(words))

참고URL : https://stackoverflow.com/questions/19053707/converting-snake-case-to-lower-camel-case-lowercamelcase

반응형