2022年
4月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

2022-04-25 Rとjuliaとrubyとpython

_ ファイル

4つの言語の比較の第七弾として,ファイルの取り扱い方についてまとめてみた.まさか七弾まで来るとは,始めた当初は予想しなかった.基本的な使い方を比較して行く内に,これについてもまとめないとと,増えて行った.さて,肝心の表はこんな感じです.
Rjuliarubypython3
読み込み f<-file("index.html","r")
d<-readLines(f)
close(f)
f=open("index.html","r")
d=readlines(f)
close(f)
f=open("index.html","r")
d=f.readlines
f.close
f=open("index.html","r")
d=f.readlines()
f.close()
ブロック d=open("index.html","r") do f readlines(f) end d=open("index.html","r"){|f|f.readlines} with open("index.html","r") as f: d=f.readlines()
ファイル名 d<-readLines("index.html") d=readlines("index.html")
全体読み込み d<-readChar("index.html",file.info("index.html")$size,TRUE) d=open(f->read(f,String),"index.html") d=open("index.html","r"){|f|f.read} with open("index.html","r") as f: d=f.read()
書き込み cat("Hello, world!",file="out.txt") open(f->print(f,"Hello, world!"),"out.txt","w") open("out.txt","w"){|f|f.print "Hello, world!"} with open("out.txt","w") as f: f.write("Hello, world!")
追加 cat("Hello, world!",file="out.txt",append=TRUE) open(f->print(f,"Hello, world!"),"out.txt","a") open("out.txt","a"){|f|f.print "Hello, world!"} with open("out.txt","a") as f: f.write("Hello, world!")
それぞれの言語で少し異なっているが,一番上の標準的は方法はほとんど同じだが,openとcloseが面倒である. Rでは,ファイル名を指定する方法が楽かな. juliaは,読み込みはファイル名を指定して,書き込みはopenで関数を指定するのが良い気がする. rubyとpythonはブロックを使うと良い. 使いやすさにはあまり違いは無いが,Rが少しだけくせが強くて難しいかな.