IT

루비에서 파일을 만드는 방법

lottoking 2020. 6. 3. 08:12
반응형

루비에서 파일을 만드는 방법


새 파일을 만들려고하는데 파일이 예상대로 작동하지 않는 것 같습니다. 내가 시도한 것은 다음과 같습니다.

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.open("out.txt", [your-option-string]) {|f| f.write("write your stuff here") }

옵션은 다음과 같습니다.

  • r-읽기 전용 파일이 존재해야합니다.
  • w -쓸 빈 파일을 만듭니다.
  • a -파일에 추가 파일이 없으면 생성됩니다.
  • r+-읽기와 쓰기 모두를 위해 파일을 엽니 다. 파일이 존재해야합니다.
  • w+ -읽고 쓰기위한 빈 파일을 만듭니다.
  • a+-읽고 추가 할 파일을 엽니 다. 파일이 없으면 작성됩니다.

귀하의 경우에 'w'바람직합니다.

또는 당신은 가질 수 있습니다 :

out_file = File.new("out.txt", "w")
#...
out_file.puts("write your stuff here")
#...
out_file.close

시험

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

사용하지 않고

File.new "out.txt"

다음 w+대신 쓰기 모드로 사용하십시오 w.

File.open("out.txt", "w+") { |file| file.write("boo!") }

좋아, 이제 바보 같아 처음 두 가지는 작동하지 않지만 두 번째는 작동합니다. 내가 시도했다고 스스로를 어떻게 확신했는지 잘 모르겠습니다. 모두의 시간을 낭비해서 죄송합니다.

이것이 다른 사람에게 도움이되는 경우 존재하지 않는 디렉토리에 새 파일을 만들려고 할 때 발생할 수 있습니다.


디렉토리가 존재하지 않습니다. open해당 디렉토리를 생성하지 않으므로 존재하는지 확인하십시오 .

나는이 문제를 잠시 동안 만났다.


File.newFile.open(읽기 모드로 기본 설정 'r'파일을 덮어 쓰기 가능 피하기 위해, 안전 메커니즘으로). 'w'파일로 출력 하려면 쓰기 모드를 사용하도록 Ruby에 명시 적으로 알려야합니다 ( 가장 일반적인 방법 임).

출력 할 텍스트가 쓰기가 아닌 문자열 인 경우 :

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한 번에 컨텐츠를 출력 한 다음 파일을 닫을 경우 유용합니다.

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


목표가 파일을 만드는 것이라면 가장 직접적인 방법은 다음과 같습니다.

 FileUtils.touch "foobar.txt"

문자열 대신 상수를 사용하여 원하는 모드를 지정할 수도 있습니다. 상수 이름으로 오타를 만들면 프로그램에서 런타임 예외가 발생합니다.

상수는 File::RDONLY또는 File::WRONLYFile::CREAT. 원하는 경우 조합 할 수도 있습니다.

ruby-doc.org의 파일 열기 모드에 대한 전체 설명

참고URL : https://stackoverflow.com/questions/7911669/how-to-create-a-file-in-ruby

반응형