반응형
반응형

[python] Working With Dictionaries

1. Creating a Dictionary

To forge a new dictionary:

# A tome of elements and their symbols
elements = {'Hydrogen': 'H', 'Helium': 'He', 'Lithium': 'Li'}

2. Adding or Updating Entries

To add a new entry or update an existing one:

elements['Carbon'] = 'C'  # Adds 'Carbon' or updates its value to 'C'

3. Removing an Entry

To banish an entry from the dictionary:

del elements['Lithium']  # Removes the key 'Lithium' and its value

4. Checking for Key Existence

To check if a key resides within the dictionary:

if 'Helium' in elements:
    print('Helium is present')

5. Iterating Over Keys

To iterate over the keys in the dictionary:

for element in elements:
    print(element)  # Prints each key

6. Iterating Over Values

To traverse through the values in the dictionary:

for symbol in elements.values():
    print(symbol)  # Prints each value

7. Iterating Over Items

To journey through both keys and values together:

for element, symbol in elements.items():
    print(f'{element}: {symbol}')

8. Dictionary Comprehension

To conjure a new dictionary through an incantation over an iterable:

# Squares of numbers from 0 to 4
squares = {x: x**2 for x in range(5)}

9. Merging Dictionaries

To merge two or more dictionaries, forming a new alliance of their entries:

alchemists = {'Paracelsus': 'Mercury'}
philosophers = {'Plato': 'Aether'}
merged = {**alchemists, **philosophers}  # Python 3.5+

10. Getting a Value with Default

To retrieve a value safely, providing a default for absent keys:

element = elements.get('Neon', 'Unknown')  # Returns 'Unknown' if 'Neon' is not found

 

https://blog.stackademic.com/ultimate-python-cheat-sheet-practical-python-for-everyday-tasks-c267c1394ee8

 

Ultimate Python Cheat Sheet: Practical Python For Everyday Tasks

(My Other Ultimate Guides)

blog.stackademic.com

 

반응형
반응형

[python] 폴더 안의 .webp 이미지를 .png 로 변환

 

.webp 이미지를 .png로 변환하는 Python 프로그램을 작성할 수 있습니다. 이를 위해 Pillow 라이브러리를 사용합니다. Pillow는 Python의 이미지 처리 라이브러리로, 다양한 이미지 형식을 다룰 수 있습니다.

다음은 특정 폴더 내의 모든 .webp 이미지를 .png로 변환하는 프로그램입니다:

1. Pillow 설치

먼저 Pillow 라이브러리를 설치해야 합니다. 터미널이나 명령 프롬프트에서 다음 명령어를 실행하세요:

pip install Pillow

2. .webp 이미지를 .png로 변환하는 코드

아래 코드 예시는 지정된 폴더 내의 모든 .webp 파일을 .png 파일로 변환합니다:

from PIL import Image
import os

def convert_webp_to_png(folder_path):
    # 폴더 내 모든 파일을 반복
    for filename in os.listdir(folder_path):
        if filename.endswith(".webp"):
            # 파일의 전체 경로 생성
            webp_file_path = os.path.join(folder_path, filename)

            # .webp 파일을 열고 .png로 저장
            png_filename = filename[:-5] + ".png"  # 파일 확장자를 .png로 변경
            png_file_path = os.path.join(folder_path, png_filename)

            with Image.open(webp_file_path) as img:
                img.save(png_file_path, "png")
            
            print(f"Converted: '{filename}' -> '{png_filename}'")

# 사용 예시
folder_path = 'path_to_your_folder'  # 여기에 폴더 경로를 입력하세요
convert_webp_to_png(folder_path)

코드 설명

  1. Pillow 라이브러리 사용: Pillow의 Image 모듈을 사용하여 이미지를 열고 변환합니다.
  2. 폴더 내 파일 탐색:
    • os.listdir(folder_path)를 사용하여 지정된 폴더 내의 모든 파일을 가져옵니다.
    • if filename.endswith(".webp"): 조건문을 사용하여 .webp 확장자를 가진 파일만 필터링합니다.
  3. 파일 경로 생성:
    • webp_file_path는 원본 .webp 파일의 전체 경로입니다.
    • png_filename은 .webp 확장자를 .png로 대체한 새 파일 이름입니다.
    • png_file_path는 변환된 .png 파일의 전체 경로입니다.
  4. 이미지 변환 및 저장:
    • Image.open(webp_file_path)를 사용하여 .webp 파일을 열고, img.save(png_file_path, "png")를 사용하여 .png 파일로 저장합니다.
  5. 사용 방법:
    • folder_path 변수에 변환할 .webp 파일이 있는 폴더 경로를 입력합니다.
    • 프로그램을 실행하면 폴더 내 모든 .webp 파일이 .png 파일로 변환됩니다.

사용 예시

예를 들어, 폴더 경로가 C:/Users/YourName/Documents/Images인 경우:

folder_path = 'C:/Users/YourName/Documents/Images'
convert_webp_to_png(folder_path)

위 코드를 실행하면 해당 폴더 내의 모든 .webp 파일이 .png 형식으로 변환됩니다.

반응형
반응형

[python] 폴더 안의 파일들 이름의 공백 또는 - 를 언더바로 변경하는 프로그램

 

공백( ) 또는 하이픈(-)을 언더바(_)로 변경하는 프로그램을 작성할 수 있습니다. 이 프로그램은 지정된 폴더 내 모든 파일의 이름을 확인하고, 공백 또는 하이픈이 포함된 경우 이를 언더바로 대체하여 이름을 변경합니다.

 

import os

def replace_spaces_and_hyphens_in_filenames(folder_path):
    # 폴더 내 모든 파일을 반복
    for filename in os.listdir(folder_path):
        # 파일의 전체 경로 생성
        old_file_path = os.path.join(folder_path, filename)

        # 파일 이름에 공백 또는 하이픈이 있는지 확인
        if ' ' in filename or '-' in filename:
            # 공백과 하이픈을 언더바로 대체
            new_filename = filename.replace(' ', '_').replace('-', '_')
            new_file_path = os.path.join(folder_path, new_filename)

            # 파일 이름 변경
            os.rename(old_file_path, new_file_path)
            print(f"Renamed: '{filename}' -> '{new_filename}'")
        else:
            print(f"No change: '{filename}'")

# 사용 예시
folder_path = 'path_to_your_folder'  # 여기에 폴더 경로를 입력하세요
replace_spaces_and_hyphens_in_filenames(folder_path)

프로그램 설명

  1. os 모듈: 파일 경로와 관련된 작업을 수행하기 위해 os 모듈을 사용합니다.
  2. 폴더 내 파일 탐색:
    • os.listdir(folder_path)를 사용하여 지정된 폴더 내의 모든 파일 및 하위 디렉토리 이름을 가져옵니다.
    • for filename in os.listdir(folder_path)를 사용하여 각 파일을 순회합니다.
  3. 공백과 하이픈을 언더바로 변경:
    • if ' ' in filename or '-' in filename: 조건문을 사용하여 파일 이름에 공백 또는 하이픈이 포함되어 있는지 확인합니다.
    • filename.replace(' ', '_').replace('-', '_')를 사용하여 공백과 하이픈을 언더바로 대체합니다.
  4. 파일 이름 변경:
    • os.rename(old_file_path, new_file_path)를 사용하여 파일 이름을 변경합니다.
  5. 사용 방법:
    • folder_path에 파일 이름을 변경할 폴더의 경로를 입력합니다.
    • 프로그램을 실행하면 폴더 내 모든 파일의 이름에서 공백과 하이픈이 언더바로 변경됩니다.

사용 예시

폴더 경로를 지정하여 프로그램을 실행하면, 그 폴더 안의 모든 파일 이름에서 공백 또는 하이픈이 언더바로 변경됩니다. 예를 들어, path_to_your_folder가 C:/Users/YourName/Documents/TestFolder인 경우:

folder_path = 'C:/Users/YourName/Documents/TestFolder'
replace_spaces_and_hyphens_in_filenames(folder_path)

 

 

반응형
반응형

TIOBE Index for August 2024

August Headline: Python is chasing Java's TIOBE index records

This month, Python has a ranking of more than 18% for the first time in its history. The last time a language hit more than 18% was Java in November 2016. Java is also the language with the highest ranking ever: 26.49% in June 2001. Runner up C++ is now exactly 8% behind Python, and that difference between position #1 and position #2 is also almost a record. The highest difference ever between position #1 and position #2 was in November 2016 when Java was 9.55% ahead of C. In summary, Python's hegemony is now undeniable. It is likely that it is Python's next step to become the most popular programming language ever. Is there any new language expected to come close to Python soon? Possible contenders Rust and Kotlin are approaching the TIOBE index top 10 fast, but it will take a lot of time before they become a real threat to Python. --Paul Jansen CEO TIOBE Software

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular web sites Google, Amazon, Wikipedia, Bing and more than 20 others are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system. The definition of the TIOBE index can be found here.

 

 

https://www.tiobe.com/tiobe-index/

 

TIOBE Index - TIOBE

Home » TIOBE Index TIOBE Index for August 2024 August Headline: Python is chasing Java's TIOBE index records This month, Python has a ranking of more than 18% for the first time in its history. The last time a language hit more than 18% was Java in Novemb

www.tiobe.com

 

파이썬은 2024년 8월 티오베(Tiobe)의 프로그래밍 언어 인기 지수에서 역대 최고 평점인 18.04%를 기록했다. 이로써 파이썬은 2016년 11월 자바 이후 처음으로 18%에 도달한 언어가 됐다. 최고 기록은 자바가 2001년 6월에 세운 26.49%이다.

 

현재 파이썬은 2021년 10월에 처음으로 1위에 오르며 티오베 지수의 최상위 언어로 확고히 자리 잡았다. 티오베의 CEO 폴 얀센은 "파이썬의 상승은 주로 소프트웨어 엔지니어에 대한 수요가 많고 파이썬이 가장 배우기 쉬운 성숙한 범용 프로그래밍 언어이기 때문이다. 그래서 이 분야의 모든 초보자는 파이썬으로 시작한다"고 설명했다. 

2024년 8월 티오베 지수에서 파이썬은 10.04%의 2위 C++보다 8%나 앞서 있다. 3위와 4위는 C 언어와 자바로 각각 각각 9.17%와 9.16%를 기록했다. 지난달 13위로 역대 최고 순위를 기록했던 러스트 언어는 다시 14위로 하락했다. 얀센은 "러스트의 하락에 대해 걱정할 필요 없다. 다음 달에는 다시 상승할 것”이라고 예측했다.

티오베 지수의 공식 명칭은 '티오베 프로그래밍 커뮤니티 지수(Tiobe Programming Community Index)'로, 구글, 빙, 아마존, 위키피디아 등의 웹사이트를 통해 전 세계 숙련된 엔지니어수, 강좌, 서드파티 솔루션 업체 등을 기반으로 월간 지수를 산출해 인기를 평가한다.

2024년 8월 티오베 지수의 상위 10개 언어는 다음과 같다:

 

  • 파이썬 18.04%
  • C++ 10.04%
  • C 9.17%
  • 자바 9.16%
  • C# 6.39%
  • 자바스크립트 3.91%
  • SQL 2.21%
  • 비주얼 베이직 2.18%
  • 구글 고 2.03%
  • 포트란 1.79%

파이선은 8월 파이플 프로그래밍 언어 인기 지수(Pypl Popularity of Programming Language index)에서도 파이썬이 1위 언어 자리를 굳건히 지키고 있다. Pypl 지수는 구글에서 언어가 얼마나 자주 검색되는지 분석하여 인기도를 평가한다. 2024년 8월 파이플 지수의 상위 10개 언어는 다음과 같다.

 

  • 파이선 29.6%
  • 자바 15.51%
  • 자바스크립트 8.38%
  • C# 6.7%
  • C/C++ 6.31%
  • R 4.6%
  • PHP 4.35%
  • 타입스크립트 2.93%
  • 스위프트 2.76%
  • 러스트 2.58%
반응형
반응형

1. Creating a List

To conjure a list into being:

# A list of mystical elements
elements = ['Earth', 'Air', 'Fire', 'Water']

2. Appending to a List

To append a new element to the end of a list:

elements.append('Aether')

3. Inserting into a List

To insert an element at a specific position in the list:

# Insert 'Spirit' at index 1
elements.insert(1, 'Spirit')

4. Removing from a List

To remove an element by value from the list:

elements.remove('Earth')  # Removes the first occurrence of 'Earth'

5. Popping an Element from a List

To remove and return an element at a given index (default is the last item):

last_element = elements.pop()  # Removes and returns the last element

6. Finding the Index of an Element

To find the index of the first occurrence of an element:

index_of_air = elements.index('Air')

7. List Slicing

To slice a list, obtaining a sub-list:

# Get elements from index 1 to 3
sub_elements = elements[1:4]

8. List Comprehension

To create a new list by applying an expression to each element of an existing one:

# Create a new list with lengths of each element
lengths = [len(element) for element in elements]

9. Sorting a List

To sort a list in ascending order (in-place):

elements.sort()

10. Reversing a List

To reverse the elements of a list in-place:

elements.reverse()

 

 
반응형
반응형

 

1. Basic GET Request

To fetch data from an API endpoint using a GET request:

import requests
response = requests.get('https://api.example.com/data')
data = response.json()  # Assuming the response is JSON
print(data)

2. GET Request with Query Parameters

To send a GET request with query parameters:

import requests
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://api.example.com/search', params=params)
data = response.json()
print(data)

3. Handling HTTP Errors

To handle possible HTTP errors gracefully:

import requests
response = requests.get('https://api.example.com/data')
try:
    response.raise_for_status()  # Raises an HTTPError if the status is 4xx, 5xx
    data = response.json()
    print(data)
except requests.exceptions.HTTPError as err:
    print(f'HTTP Error: {err}')

4. Setting Timeout for Requests

To set a timeout for API requests to avoid hanging indefinitely:

import requests
try:
    response = requests.get('https://api.example.com/data', timeout=5)  # Timeout in seconds
    data = response.json()
    print(data)
except requests.exceptions.Timeout:
    print('The request timed out')

5. Using Headers in Requests

To include headers in your request (e.g., for authorization):

import requests
headers = {'Authorization': 'Bearer YOUR_ACCESS_TOKEN'}
response = requests.get('https://api.example.com/protected', headers=headers)
data = response.json()
print(data)

6. POST Request with JSON Payload

To send data to an API endpoint using a POST request with a JSON payload:

import requests
payload = {'key1': 'value1', 'key2': 'value2'}
headers = {'Content-Type': 'application/json'}
response = requests.post('https://api.example.com/submit', json=payload, headers=headers)
print(response.json())

7. Handling Response Encoding

To handle the response encoding properly:

import requests
response = requests.get('https://api.example.com/data')
response.encoding = 'utf-8'  # Set encoding to match the expected response format
data = response.text
print(data)

8. Using Sessions with Requests

To use a session object for making multiple requests to the same host, which can improve performance:

import requests
with requests.Session() as session:
    session.headers.update({'Authorization': 'Bearer YOUR_ACCESS_TOKEN'})
    response = session.get('https://api.example.com/data')
    print(response.json())

9. Handling Redirects

To handle or disable redirects in requests:

import requests
response = requests.get('https://api.example.com/data', allow_redirects=False)
print(response.status_code)

10. Streaming Large Responses

To stream a large response to process it in chunks, rather than loading it all into memory:

import requests
response = requests.get('https://api.example.com/large-data', stream=True)
for chunk in response.iter_content(chunk_size=1024):
    process(chunk)  # Replace 'process' with your actual processing function

 

https://blog.stackademic.com/ultimate-python-cheat-sheet-practical-python-for-everyday-tasks-c267c1394ee8

반응형

'프로그래밍 > Python' 카테고리의 다른 글

[python] TIOBE Index for August 2024, Python 1st  (0) 2024.08.09
[python] Working With Lists  (0) 2024.07.24
[python] Working With Files  (0) 2024.07.24
[python] Pandas cheat sheet  (0) 2024.07.19
[python] 변수 scope, LEGB Rule  (0) 2024.07.15

+ Recent posts