Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby에서 파일을 읽고 쓰는 방법(예제 포함)

오늘은 콘텐츠를 추출하고 새 파일을 만들고 필요한 정보를 찾을 수 있도록 Ruby에서 파일을 읽고 쓰는 방법을 배웁니다!

Ruby에서 파일을 읽고 쓰는 방법(예제 포함)

여기에서 다룰 내용입니다 :

내용

  • 1 Ruby에서 파일을 읽는 방법
  • 2 Ruby에서 파일에 쓰는 방법
  • 3가지 Ruby 파일 메서드
  • 4 디렉터리 작업
  • 5 FileUtils 모듈 사용 방법
  • 6 요약
    • 6.1 관련

해보자!

Ruby에서 파일을 읽는 방법

다음과 같이 Ruby에서 파일을 읽을 수 있습니다.

  1. 파일 열기 , open 방법.
  2. 파일 읽기 , 전체 파일, 한 줄씩 또는 특정 바이트 수.
  3. 파일 닫기 , close 방법.

자세한 절차는 다음과 같습니다.

File 사용 파일을 여는 클래스:

파일 =File.open("users.txt")

결과적으로 File 개체는 있지만 아직 파일의 내용은 아닙니다.

지금 :

세 가지 방법으로 파일의 내용을 읽을 수 있습니다.

먼저 전체 파일을 읽을 수 있습니다.

좋아요 :

file_data =file.read# "user1\nuser2\nuser3\n"

여러 줄이 있는 파일로 작업하는 경우 다음 중 하나를 split할 수 있습니다. file_data , 또는 readlines 사용 메소드와 chomp 줄바꿈 문자를 제거하는 방법입니다.

:

file_data =file.readlines.map(&:chomp)# ["user1", "user2", "user3"]

close하려는 파일 작업이 끝나면 메모리 및 시스템 리소스를 확보합니다.

좋아요 :

파일.닫기

파일을 열고 닫아야 하는 대신 , File.read를 사용할 수 있습니다. 방법:

file_data =File.read("user.txt").split# ["user1", "user2", "user3"]

파일 읽기에 대한 또 하나의 팁입니다.

파일을 한 번에 한 줄씩 처리하려면 foreach를 사용할 수 있습니다. 방법.

:

File.foreach("users.txt") { |줄| }
줄을 넣습니다.

전체 파일을 메모리로 읽는 대신 한 번에 한 줄씩 파일을 처리할 수 있어 대용량 파일에 유용합니다.

Ruby에서 파일에 쓰는 방법

Ruby를 사용하여 파일에 쓰려면:

  1. 쓰기 모드에서 파일 열기("w" 플래그)
  2. write 사용 파일에 데이터를 추가하는 방법
  3. 블록 버전을 사용하지 않았다면 close하는 것을 잊지 마세요.

:

File.open("log.txt", "w") { |f| f.write "#{Time.now} - 로그인한 사용자\n" }

중요 :

이전 파일 내용을 다시 작성합니다!

파일에 새 콘텐츠를 추가하려면 "w"(쓰기) 플래그 대신 "a"(추가) 플래그를 사용하십시오.

한 가지 단축키는 File.write를 사용하는 것입니다. :

File.write("log.txt", "데이터...")

추가 모드에서 이 방법을 사용하려면 :

File.write("log.txt", "data...", 모드:"a")

한 줄의 코드로 Ruby에서 파일에 쓰는 가장 쉬운 방법입니다 🙂

한가지 더...

파일에 배열을 쓰려면 먼저 문자열로 변환해야 합니다.

방법은 다음과 같습니다. :

File.write("log.txt", [1,2,3].join("\n"), 모드:"a")

이 객체를 문자열로 변환하는 과정을 직렬화라고 합니다.

루비 파일 메소드

파일을 읽고 쓰는 것 외에 파일로 다른 작업을 수행할 수 있습니다.

예를 들어, 파일이 있는지 알고 싶을 수 있습니다 또는 현재 디렉토리에 대한 파일 목록을 가져옵니다.

다음과 같은 방법을 사용하게 됩니다. :

  • 이름 바꾸기
  • 크기
  • 존재합니까?
  • 내선 이름
  • 기본 이름
  • 디렉토리 이름
  • 디렉토리?
  • 파일?

몇 가지 예를 살펴보겠습니다. :

# 파일 이름 바꾸기File.rename("old-name.txt", "new-name.txt")# 파일 크기 in bytesFile.size("users.txt")# 이 파일이 이미 존재합니까?File.exists ?("log.txt")# 파일 확장자를 가져옵니다. 파일이 존재하지 않아도 작동합니다.File.extname("users.txt")# => ".txt# partFile 디렉토리 없이 파일 이름을 가져옵니다. basename("/tmp/ebook.pdf")# => "ebook.pdf"# 파일 이름 없이 이 파일의 경로를 가져옵니다.File.dirname("/tmp/ebook.pdf")# => "/tmp" # 이것은 실제로 파일인가 디렉토리인가?File.directory?("cats")

디렉토리 목록의 내용을 반복하는 경우 마지막 예가 더 적합합니다.

def find_files_in_current_directory 항목 =Dir.entries(".") 항목.거부 { |항목| File.directory?(항목) }끝

파일 크기, 권한, 생성 날짜 등과 같은 파일에 대한 통계를 얻을 수도 있습니다.

파일.stat("/tmp")

디렉토리 작업

Dir.glob 사용 특정 패턴과 일치하는 모든 파일의 목록을 얻을 수 있습니다.

다음은 몇 가지 예입니다.

# 현재 디렉토리의 모든 파일Dir.glob("*")# nameDir.glob("*spec*")# 모든 ruby ​​filesDir.glob("*.rb") 

이 한 줄의 코드는 현재 디렉토리부터 시작하여 Ruby의 모든 파일을 재귀적으로 나열합니다. :

Dir.glob("**/**")

디렉토리만 검색하려면 다음을 사용하십시오.

Dir.glob("**/**/")

Dir 클래스를 사용하면 현재 작업 디렉토리를 인쇄할 수도 있습니다. :

디렉터리.pwd

디렉토리가 비어 있는지 확인:

Dir.empty?("/tmp")# false

디렉토리가 있는지 확인:

Dir.exists?("/home/jesus")# 사실

새 디렉토리 생성:

Dir.mkdir("/tmp/testing")

mktmpdir을 사용하여 임시 디렉토리 생성:

Dir.mktmpdir do |dir| File.write(dir + "/log.txt", "test")end

FileUtils 모듈 사용 방법

FileUtils 모듈 내에서 액세스할 수 있는 몇 가지 추가 파일 처리 유틸리티가 있습니다.

예를 들어 파일을 비교할 수 있습니다. , 파일을 터치합니다(마지막 액세스 및 수정 시간 업데이트 ) 또는 cp_r을 사용하여 파일 및 디렉토리 복사 .

좋아요 :

'fileutils'FileUtils.compare_file("a.txt", "b.txt")FileUtils.touch("/tmp/lock")FileUtils.cp_r("data", "backup") 필요

Btw cp_r의 "r" "재귀적"을 의미합니다.

요약

File.read와 같은 내장 메소드를 사용하여 Ruby에서 파일 및 폴더를 관리하는 방법을 배웠습니다. &File.write .

읽어주셔서 감사합니다!