Ruby에서 파일을 만드는 법


2 Answers

시험

File.open("out.txt", "w") do |f|     
  f.write(data_you_want_to_write)   
end

사용하지 않고

File.new "out.txt"
Question

나는 새로운 파일을 만들려고 노력하고 있으며, 내가 기대하는 것처럼 작동하지 않는 것 같습니다. 다음은 내가 시도한 것입니다.

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.newFile.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 는 한 번의 폭발로 내용을 출력하고 파일을 닫을 때 유용합니다.

자세한 내용 은 설명서 를 참조하십시오.




Related