오늘은 콘텐츠를 추출하고 새 파일을 만들고 필요한 정보를 찾을 수 있도록 Ruby에서 파일을 읽고 쓰는 방법을 배웁니다!
여기에서 다룰 내용입니다 :
내용
- 1 Ruby에서 파일을 읽는 방법
- 2 Ruby에서 파일에 쓰는 방법
- 3가지 Ruby 파일 메서드
- 4 디렉터리 작업
- 5 FileUtils 모듈 사용 방법
- 6 요약
- 6.1 관련
해보자!
Ruby에서 파일을 읽는 방법
다음과 같이 Ruby에서 파일을 읽을 수 있습니다.
- 파일 열기 ,
open
방법. - 파일 읽기 , 전체 파일, 한 줄씩 또는 특정 바이트 수.
- 파일 닫기 ,
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를 사용하여 파일에 쓰려면:
- 쓰기 모드에서 파일 열기("w" 플래그)
write
사용 파일에 데이터를 추가하는 방법- 블록 버전을 사용하지 않았다면
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")endFileUtils 모듈 사용 방법
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
.읽어주셔서 감사합니다!