Programming 95

[파이썬] Python에서 XML 파일 다루는법 - XPath에 대해서 알아보자.

XML 파일을 그냥 읽으면 parsing되지않고, 모두 이어진 텍스트로 읽혀 가독성이 매우 좋지않다. 이를 가독성 좋게 읽기 위해서는 우선 python에서 지원하는 xml parsing 도구를 사용할 수 있다.보편적으로 아래와 같은 코드로 xml 파일을 읽어들이게 된다.import xml.etree.ElementTree as ETtree = ET.parse(xml_path)root = tree.getroot() 아래의 코드로 root에 저장된 내용을 각 계층에 맞게 출력해주면 가독성 좋은 텍스트로 출력할 수 있다.def print_xml_structure(elem, level=0): indent = '\t' * level print(f"{indent}") if elem.text: ..

Programming/python 2024.05.16

Anaconda없이 Python 가상환경 만들기

리눅스에서 진행했습니다. 공식 Document 12. Virtual Environments and PackagesIntroduction: Python applications will often use packages and modules that don’t come as part of the standard library. Applications will sometimes need a specific version of a library, because the ...docs.python.org  1. 가상환경을 지원하는 툴을 설치합니다. (이미 설치되어있다면 2번부터 진행해주세요.)sudo apt install python3.8-venv 2. 원하는 위치에 가상환경 폴더를 생..

Programming/python 2024.04.08

리눅스 터미널에서 동일한 폴더 내의 파일명 일괄 변경하기

** 다양한 파일명을 변경하는 경우들이 있겠지만 이번 글에서는 특정 단어를 추가하거나 특정 단어를 다른 단어로 변경하는 일괄 처리에 대해서 다루어보았습니다. 일반적으로 디렉토리에 있는 모든 파일을 다른 폴더로 옮기려고 할 때 mv 라는 명령어를 사용합니다. 파일을 옮길 때 mv 명령어를 이용하면 이동과 동시에 파일명도 변경해줄 수 있습니다. 일반적으로 아래와 같은 명령어로 수행할 수 있습니다. mv 만약 여러개의 파일을 mv해주고, 파일명을 변경해주고 싶다면 for 구문을 사용해주면 됩니다. 아래의 예시로 어떻게 하는지 알아보겠습니다. 모든 파일에 path는 옮기지 않고, 파일명 변경만 해준 경우입니다. 모든 파일에 new_를 붙여서 옮기는 명령어 입니다. for file in * do mv "$file..

Programming/linux 2024.03.23

리눅스 터미널(linux terminal)에서 텍스트 색상(text color) 바꾸는 법

Ubuntu 20.04 에서 terminal을 작업할 때는 텍스트에 색상이 부여되어있어 가독성이 높습니다. 하지만 터미널에서 ssh로 서버에 원격접속하였을 때, 무색의 스타일로 접속되어 가독성이 매우 떨어집니다. 이 무색무취의 터미널의 스타일 변경을 시도해보았습니다. 먼저, ssh 원격 접속된 터미널 내에서 보편적으로 /home/username/ 디렉토리에 .bashrc라는 파일이 있습니다. ( ls로는 .file은 보이지 않기 때문에 ls -a 라는 명령어를 통해서 확인할 수 있습니다. ) 우선 사진의 초록색, 파란색 부분의 프롬프트인 username@hostname : ~working_directory $ 부분을 색상 변경 해보겠습니다. vi .bashrc i PS1='\[\033[0;32m\]\u@..

Programming/linux 2024.03.21

Swift언어로 IOS앱 만들어보기 : XCode 시작하기

Apple에서는 Vision, Vision Kit, CoreML 등 컴퓨터비전에 관련된 다양한 툴들을 제공하고있습니다. 이러한 도구들을 활용해서 OCR기능이 되는 IOS앱을 만들어보려고 합니다. 우선, IOS앱을 만들기 위해서는 swift라는 언어를 사용해야하고, XCode라는 macOS전용 개발 툴을 사용해야합니다. 우선 xcode를 mac app store에서 설치한 후, 실행해줍니다. 실행하면 아래와 같은 화면이 뜨게 되는데, 여기에서 원하는 방식으로 프로젝트를 생성하거나 불러옵니다. 아래의 방식으로도 Create New Project 와 같은 동작을 수행할 수 있습니다. 아래의 사진처럼 필요한 내용들을 입력해주고, Next를 눌러 프로젝트를 생성하면 app을 만들 첫번째 준비가 되었습니다. 위..

[Tensorflow 2.0] 텐서플로우 데이터 구조 파악하기 (tf.data.Dataset + TFRecord)

텐서플로우로 딥러닝 모델을 학습시키기 위한 첫번째 단계로 인풋데이터를 마련해야한다. 우선, 먼저 Tensorflow에서 지원하는 data input pipeline 문서를 보고 파악해보고자 한다. https://www.tensorflow.org/guide/data tf.data: TensorFlow 입력 파이프라인 빌드 | TensorFlow Core tf.data: TensorFlow 입력 파이프라인 빌드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. tf.data API를 사용하면 간단하고 재사용 가능한 조각으로 복잡한 입력 파 www.tensorflow.org The tf.data API input pipeline은 데이터 소스에서부터 시작해야한다. tf.data.D..

[tensorflow] RaggedTensor란?

tensorflow에서 지원하는 텐서를 담을 수 있는 데이터구조 중에서 RaggedTensor라는 것이 있다. ragged는 irregular와 같은 의미로, RaggedTensor는 각 차원마다 다른 길이(length)를 가질 수 있는 데이터 구조이다. 예시로 tf.RaggedTensor( values=Tensor("StringSplit/StringSplitV2:1", shape=(None,), dtype=string), row_splits=Tensor("StringSplit/RaggedFromValueRowIds/RowPartitionFromValueRowIds/concat:0", shape=(None,), dtype=int64) ) values는 실제로 포함하고있는 데이터로 "StringSplit/..

PySpark SQL 시작하기

https://spark.apache.org/docs/latest/sql-getting-started.html#getting-started Getting Started - Spark 3.5.0 Documentation spark.apache.org 공식문서를 참고하여 작성하였습니다. 1. Starting Point : SparkSession 먼저 java를 먼저 설치하고, java/bin 경로를 환경변수로 설정해야한다. - java 설치 - 리눅스에서 java 환경변수로 설정하는 방법 셋팅을 완료하였다면 아래의 코드로 Session을 생성해준다. from pyspark.sql import SparkSession spark = SparkSession \ .builder \ .appName("Python S..

Programming/python 2024.01.04

대용량 JSON파일 처리하기. python ijson

먼저, 기존에 사용하던 기본 내장 패키지인 json과의 차이를 ChatGPT를 통해 알아보자. You : python 패키지로 제공되는 json과 ijson의 차이점을 장단점과 함께 설명해줘 ChatGPT : Python에서 제공되는 json과 ijson은 모두 JSON 데이터를 처리하기 위한 패키지입니다. 그러나 두 패키지는 데이터를 다루는 방식과 목적에 있어 몇 가지 차이가 있습니다. 1. json: - 장점 : 표준 라이브러리로 내장되어 있어 추가적인 설치가 필요하지 않음. 사용하기 쉽고 간단한 인터페이스를 제공함. 작은 JSON 데이터를 처리하는 데에는 효과적. - 단점 : 대용량의 JSON 파일 또는 대규모 JSON 스트림을 처리할 때는 메모리 사용량이 많을 수 있음. 한 번에 전체 JSON을 ..

Programming/python 2024.01.04