11์ฅ: File in/out
1. ํ์ผ ์ด๊ธฐ์ ๋ซ๊ธฐ
1.1 ํ์ผ ์ด๊ธฐ (open)
set file [open ํ์ผ๋ช
๋ชจ๋]
์ฃผ์ ๋ชจ๋:
r
: ์ฝ๊ธฐ (๊ธฐ๋ณธ๊ฐ)w
: ์ฐ๊ธฐ (ํ์ผ์ด ์กด์ฌํ๋ฉด ๋ด์ฉ ์ญ์ )a
: ์ถ๊ฐ (ํ์ผ ๋์ ์ฐ๊ธฐ)
์์:
set fid [open "example.txt" w]
1.2 ํ์ผ ๋ซ๊ธฐ (close)
fclose๋ fopen์ด ์๋ค๋ฉด ๊ผญ ๋ฃ์ด์ฃผ์ธ์. ์๋๋ผ๋, ์ต์ OS์์ ํ์ผ์ ์ฌ๊ฐํ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์๊ฒ ๋์ด์์ง๋ง, ๋ฆฌ์์ค ๊ด๋ฆฌ ์ธก๋ฉด์์๋ ํ์ํฉ๋๋ค.
close $file
2. ํ์ผ ์ฝ๊ธฐ
2.1 ํ ์ค์ฉ ์ฝ๊ธฐ (gets)
set file [open "read.txt" r]
while {[gets $file line] >= 0} {
puts $line
}
2.2 ์ ์ฒด ํ์ผ ์ฝ๊ธฐ (read)
set content [read $file]
ํน์ ๋ฐ์ดํธ ์๋งํผ ์ฝ๊ธฐ:
set partial_content [read $file 100]
3. ํ์ผ ์ฐ๊ธฐ
3.1 puts ์ฌ์ฉ
set file [open "write.txt" r]
puts $file "Hello, World!"
3.2 ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ์ฐ๊ธฐ
# ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ์ฐ๊ธฐ
puts -nonewline $file [binary format H* "48656C6C6F"]
4. ํ์ผ ์์น ์ ์ด
4.1 ํ์ฌ ์์น ํ์ธ (tell)
set position [tell $file]
4.2 ์์น ์ด๋ (seek)
seek $file ์คํ์
์์น์ต์
์ต์ :
start
: ํ์ผ ์์ (๊ธฐ๋ณธ๊ฐ)current
: ํ์ฌ ์์นend
: ํ์ผ ๋
์์:
seek $file 10 start # ํ์ผ ์์์์ 10๋ฐ์ดํธ ์ด๋
seek $file -5 current # ํ์ฌ ์์น์์ 5๋ฐ์ดํธ ๋ค๋ก
seek $file 0 end # ํ์ผ ๋์ผ๋ก ์ด๋
5. ํ์ผ ์ ๋ณด ๋ฐ ์กฐ์
5.1 ํ์ผ ์กด์ฌ ์ฌ๋ถ ํ์ธ
if {[file exists "filename.txt"]} {
puts "File exists"
}
6. ๋๋ ํ ๋ฆฌ ์์
6.1 ํ์ฌ ๋๋ ํ ๋ฆฌ ํ์ธ/๋ณ๊ฒฝ
cd "/new/directory/path"
6.2 ๋๋ ํ ๋ฆฌ ๋ด์ฉ ๋์ด
set files [glob -directory "/path/to/dir" *]
7. ํ์ผ ์ฑ๋ ์ค์
ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ๋ ๋ฐฉ์์ ์ ํฉ๋๋ค. ๋์ฉ๋ ํ์ผ ์ฒ๋ฆฌ์, ํผํฌ๋จผ์ค ์ธก๋ฉด์์ ์ฅ์ ์ด ์์ต๋๋ค.
7.1 ๋ฒํผ๋ง ์ค์
fconfigure $file -buffering none|line|full
7.2 ์ธ์ฝ๋ฉ ์ค์
fconfigure $file -encoding utf-8
Last updated