2021-01-01から1年間の記事一覧

Pythonでメモリ内のデータをStringIOに変換してcsv.readerに読み込ませる

CSVファイルを読み込んで文字列の置換を行った後、 csv.readerに読み込ませたい。メモリ内のデータをStringIOに変換すると csv.readerに読み込ませることができた。「test.csv」の内容 a,b 1,&lt2&gt 3,&lt4&gtimport csv import io with open('test.csv') a…

Pythonのopenpyxlで日付データをExcelファイルに書き込む

import openpyxl import datetime wb = openpyxl.load_workbook('test.xlsx') ws = wb['Sheet1'] dt = datetime.date(2021, 12, 30) ws.cell(row=1, column=1).number_format = 'yyyy/mm/dd' ws.cell(row=1, column=1).value = dt wb.save('test.xlsx') wb.c…

PythonでCSVファイルを読み込む

ダブルクオーテーション内のカンマは無視してくれます。 (区切り文字として認識しない)CSVファイルの内容 A,B,C a,"b,b",c d,"e,e",fPythonプログラム import csv with open('test.csv') as f: header = f.readline() #1行目はタイトル行なので読み飛ばす cs…

Pythonのopenpyxlで既存のExcelファイルに書き込む

import openpyxl wb = openpyxl.load_workbook('test.xlsx') ws = wb['Sheet1'] ws['A3'].value = 1 wb.save('test.xlsx') wb.close() セルを数値で指定する場合 import openpyxl wb = openpyxl.load_workbook('test.xlsx') ws = wb['Sheet1'] ws.cell(row=4…

LibreOffice Calcで文字コードを変更する

対象ファイルを開く。 「ファイル」→「名前を付けて保存」 「フィルター設定を編集する」にチェックをつける。 「保存」を押す。 「文字エンコーディング」を選択する。

Linux From Scratch(Version 11.0) 1 (ホストシステムに必要なソフトウェアのインストール)

ホストシステムに必要なソフトウェアのインストールを行った。 インストールされていなかったのは下記の2つだった。$ sudo apt install bison $ bison --version bison (GNU Bison) 3.7.5$ sudo apt install texinfo $ makeinfo --version texi2any (GNU tex…

携帯電話会社を乗りかえたときの手順の記録

1.SIMロック解除 現在契約中の携帯会社に依頼する Webで行えました 最近購入したスマホだともともとロックがかかっていない場合もあるようです その場合はこの作業は不要です 2.MNP予約番号取得 現在使っている電話番号を引き続き使うために必要です 現在契…

Puppy Linux を手動でインストールして、GRUBのコマンドで起動する

概要 /dev/sda1にLinuxがインストールされている。 /dev/sda3にPuppy Linuxを手動でインストールする。 Puppy LinuxをGRUBのコマンドで起動する。 手順 Puppy Linux Home 上記のサイトから、fossapup64-9.5.isoをダウンロードする。fossapup64-9.5.isoをマウ…

言語処理100本ノック 第1章 03 文の各単語の長さを求める Python 複数の文字の置換 スペースで区切る mapでlen

nlp100.github.io import re s = 'Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.' # ',' と '.' を削除する s_sub = re.sub('[,.]', '', s) print(s_sub) # スペースで区切って、単語のリストを得る s_s…

知り合いから映画に誘われた

昨日ある人に会った。 I met a person yesterday. 彼はボランティア活動で会ったことがある人だ。 He is a person I have met in volunteer activities. 彼はバスを待っていた。 He was waiting for the bus. 私は家へ帰る途中だった。 I was on my way home…

Pythonでコマンドライン引数を受け取る

引数の数を表示した後 各引数とその型を表示する import sys args = sys.argv print('引数の数:', len(args)) for a in args: print(a, type(a)) $ python3 args_test.py a 1 引数の数: 3 args_test.py <class 'str'> a <class 'str'> 1 <class 'str'></class></class></class>

PDFの分割(抽出)と結合

OS:Linux(Debian) poppler-utilsを使う方法 インストール $ sudo apt install poppler-utils分割 sample.pdfの2ページ目から4ページ目を抽出して、 それぞれを、2.pdf, 3.pdf, 4.pdfとして保存する。 $ pdfseparate -f 2 -l 4 sample.pdf %d.pdf2ページ目か…

Pythonのopenpyxlを使ってExcelファイルの印刷設定をする

印刷範囲を「A1:V22」にする 印刷の向きを横にする 縦1ページ、横1ページに印刷する import openpyxl #エクセルファイルを開く filename = 'test.xlsx' wb = openpyxl.load_workbook(filename=filename) #選択されているシートを処理対象にする ws = wb.ac…

openpyxl 1列おきにセルの背景色を設定する(塗りつぶす)

1, 3, 5, 7, 9列の10行目までを灰色に塗りつぶす import openpyxl from openpyxl.styles import PatternFill filename = 'test.xlsx' wb = openpyxl.load_workbook(filename=filename) ws = wb.active for column in range(1, 10, 2): for row in range(1, 1…

openpyxl セルの書式設定で縦書きにする

A1セルを縦書きにする import openpyxl from openpyxl.styles.alignment import Alignment filename = 'test.xlsx' wb = openpyxl.load_workbook(filename=filename) ws = wb.active ws['A1'].alignment = Alignment(textRotation = 255) wb.save(filename) …

openpyxl 罫線を書く

あるセルにどのような罫線の設定がされているかを 下記のプログラムで確認できる。 「test.xlsx」の「A1」セルの罫線の設定を表示する import openpyxl wb = openpyxl.load_workbook('test.xlsx') ws = wb.active print(ws['A1'].border) 何も設定していない…

openpyxl セルに値を入れる

A1セルに1を入れる import openpyxl wb = openpyxl.Workbook() ws = wb.active ws['A1'] = 1 wb.save('test.xlsx') 2行1列(A2)セルに2を入れる import openpyxl wb = openpyxl.Workbook() ws = wb.active ws.cell(2, 1).value = 2 wb.save('test.xlsx') セル…

PythonのpandasのDataFrameの初期化 データは空でindexとcolumnsだけ設定する

import pandas as pd i = [1, 2, 3] c = ['name', 'address', 'phone'] df = pd.DataFrame(data=None, index=i, columns=c) print(df) 結果 name address phone 1 NaN NaN NaN 2 NaN NaN NaN 3 NaN NaN NaN

Pythonのgeopyで駅の緯度経度のリストから2つの駅の間の距離を求める

import pandas as pd import itertools from geopy.distance import geodesic import math def geocode_to_distance(geocode_list): distance_list = [] for data1, data2 in itertools.combinations(geocode_list, 2): name1, lat1, lng1 = data1 name2, la…

Pythonで小数を任意の位(小数第n位)で切り捨てる

import math #numを小数第digit位まで残して、第digit位より下を切り捨てる def truncate_to_n_decimal(num, digit): return math.floor(num * 10 ** digit) / (10 ** digit) >>> truncate_to_n_decimal(1.234, 1) 1.2 >>> truncate_to_n_decimal(1.234, 2) …

Pythonのopenpyxlを使ってExcelファイルを新規作成する

import openpyxl wb = openpyxl.Workbook() #ファイルの新規作成 wb.active.title = 'test' #シート名変更 wb.save('test.xlsx') #ファイルの保存

Pythonでテキストファイルを開いて改行を削除してカンマで区切る

address.txtの内容 名前と住所がカンマで区切られている 名前1,住所1 名前2,住所2 名前3,住所3f = open('address.txt') for line in f: # 行の末尾の改行を削除して、カンマで区切る name, address = line.rstrip('\n').split(',') print(name) print(…

Python sleep(一定時間プログラムの実行を停止する)

import time for i in range(3): print(i) time.sleep(1) #1秒停止

Wineの文字化けを直す方法

$ sudo apt install winetricks $ winetricks Select the default wineprefix を選択 Install a font を選択 cjkfonts を選択

Haskell入門 フィボナッチ数列を末尾再帰で速くする

参考ページ お気楽 Haskell プログラミング入門 -- fibo.hs -- 普通 fibo :: Integer -> Integer fibo n = if n == 0 || n == 1 then n else fibo (n - 1) + fibo (n - 2) -- 末尾再帰 fibo_tail :: Integer -> Integer fibo_tail n = fibo_sub n 0 1 where …

Haskell入門 1からnまでのp乗の和を求める

sum_of_power :: Integer -> Integer -> Integer sum_of_power n p = sum $ map (^p) [1..n] *Main> sum_of_power 10 1 55 *Main> sum_of_power 10 2 385 *Main> sum_of_power 100 2 338350 *Main> sum_of_power 100 3 25502500

Haskell入門(挿入ソート)

参考ページ お気楽 Haskell プログラミング入門挿入ソート 並べ替えられているリストに、 並べ替えられていない要素を適切な位置に挿入する操作を繰り返す。例 [2, 1, 4, 3]をソートする 右から畳み込む [] [3] [3, 4] [1, 3, 4] [1, 2, 3, 4] insert_elemen…

Haskell入門(標準モジュール)

Data.Listモジュール リストから重複する要素を取り除いた長さ import Data.List numUniques :: (Eq a) => [a] -> Int numUniques = length . nub*Main> numUniques [1,1,2,2,3,1] 3 *Main> nub [1,1,2,2,3,1] [1,2,3]Data.Listモジュールのインポート Prelu…

Haskellでコラッツ数列を生成する

collatz_chain :: Integer -> [Integer] collatz_chain 1 = [1] collatz_chain n | even n = n : collatz_chain (div n 2) | odd n = n : collatz_chain (n * 3 + 1)*Main> collatz_chain 1 [1] *Main> collatz_chain 2 [2,1] *Main> collatz_chain 3 [3,10,…

Haskell入門(高階関数)

関数と引数を受け取って、その引数に対して関数を2回実行する関数 (その引数に対して関数を実行した結果に、もう一度関数を実行する関数) applyTwice :: (a -> a) -> a -> a applyTwice f x = f (f x)*Main> applyTwice (+1) 2 4 *Main> applyTwice (1:) [2]…