file 리눅스 gem - Ruby에서 파일을 만드는 법
나는 새로운 파일을 만들려고 노력하고 있으며, 내가 기대하는 것처럼 작동하지 않는 것 같습니다. 다음은 내가 시도한 것입니다.
File.new "out.txt"
File.open "out.txt"
File.new "out.txt","w"
File.open "out.txt","w"
온라인으로 읽은 모든 것에 따르면 모든 사람들이 잘 작동하지만 모든 사람이 나에게 이걸 준다.
ERRNO::ENOENT: No such file or directory - out.txt
이것은 IRB와 루비 파일에서 발생합니다. 내가 뭘 놓치고 있니?
좋아, 이제 나는 어리 석다. 처음 두 개는 확실히 작동하지 않지만 두 번째 두 개는 작동합니다. 내가 그 (것)들을 시도했다는 것을 나의 각자에게 어떻게 확신 했는가. 모두의 시간을 낭비해서 죄송합니다.
이렇게하면 다른 사람에게 도움이됩니다. 존재하지 않는 디렉토리에 새 파일을 만들려고 할 때 이런 현상이 발생할 수 있습니다.
File.new
및 File.open
은 파일을 겹쳐 쓰는 것을 방지하기 위해 안전 메커니즘으로 읽기 모드 ( 'r'
)를 기본값으로 사용합니다. Ruby가 쓰기 모드를 사용하도록 명시 적으로 알려야합니다 ( 'w'
가 가장 일반적인 방법입니다).
출력 할 텍스트가 다음과 같이 쓰는 것이 아니라 문자열 인 경우 :
File.open('foo.txt', 'w') { |fo| fo.puts "bar" }
또는 악화 :
fo = File.open('foo.txt', 'w')
fo.puts "bar"
fo.close
보다 간결한 write
:
File.write('foo.txt', 'bar')
write
는 허용 된 모드를 가지므로 필요한 경우 'w'
, 'a'
, 'r+'
사용할 수 있습니다.
블록을 사용하여 open
는 반복 루프에서 출력을 계산하고 그렇게 할 때 파일을 열어두고 자 할 때 유용합니다. write
는 한 번의 폭발로 내용을 출력하고 파일을 닫을 때 유용합니다.
자세한 내용 은 설명서 를 참조하십시오.