파일 액세스 테스트를위한 대용량 CSV 파일 만들기

충성스러운

다음과 같은 10GB 파일을 만들고 싶습니다.

prefix:username:timestamp, number

따라서 예는 다음과 같습니다.

login:jbill:2013/3/25, 1

위와 같은 임의의 행을 만들어 10GB 파일을 만들고 싶습니다.

Go에서 어떻게 할 수 있습니까?

다음과 같은 접두사 배열을 가질 수 있습니다.

login, logout, register

또한 사용자 이름 배열 :

jbill, dkennedy
피터 SO

예를 들면

package main

import (
    "bufio"
    "fmt"
    "math/rand"
    "os"
    "strconv"
    "time"
)

func main() {
    fileSize := int64(10e9) // 10GB
    f, err := os.Create("/tmp/largefile")
    if err != nil {
        fmt.Println(err)
        return
    }
    w := bufio.NewWriter(f)
    prefixes := []string{"login", "logout", "register"}
    names := []string{"jbill", "dkennedy"}
    timeStart := time.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC)
    timeDur := timeStart.AddDate(1, 0, 0).Sub(timeStart)
    rand.Seed(time.Now().UnixNano())
    size := int64(0)
    for size < fileSize {
        // prefix:username:timestamp, number
        // login:jbill:2012/3/25, 1
        prefix := prefixes[int(rand.Int31n(int32(len(prefixes))))]
        name := names[int(rand.Int31n(int32(len(names))))]
        time := timeStart.Add(time.Duration(rand.Int63n(int64(timeDur)))).Format("2006/1/2")
        number := strconv.Itoa(int(rand.Int31n(100) + 1))
        line := prefix + ":" + name + ":" + time + ", " + number + "\n"
        n, err := w.WriteString(line)
        if err != nil {
            fmt.Println(n, err)
            return
        }
        size += int64(len(line))
    }
    err = w.Flush()
    if err != nil {
        fmt.Println(err)
        return
    }
    err = f.Close()
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println("Size:", size)
}

산출:

register:jbill:2012/8/24, 15
login:jbill:2012/10/7, 98
register:dkennedy:2012/8/29, 70
register:jbill:2012/6/1, 89
register:jbill:2012/5/24, 63
login:dkennedy:2012/3/29, 48
logout:jbill:2012/7/8, 93
logout:dkennedy:2012/1/12, 74
login:jbill:2012/4/12, 14
login:jbill:2012/2/5, 83

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

bash 스크립트를 사용하여 CSV 파일 만들기

csv 파일의 대량 데이터로 리소스를 만들기위한 POST 요청

csv 파일의 내용을 기반으로 JSON / 텍스트 파일 만들기

텍스트 파일 대량 삽입을 사용하여 테이블 만들기

모든 크기의 압축 테스트를위한 대용량 텍스트 파일 찾기

for 루프를 테스트하기위한 .bash 파일 만들기

텍스트 파일에서 CSV 파일 만들기

C ++ / 대용량 파일에서 빠른 임의 액세스 건너 뛰기

CSV에 대용량 텍스트 파일, 텍스트 파일을 열 수 없음

대용량 CSV 파일을 배열로 합산하는 메모리 액세스 위반

Qt 용 텍스트 파일 만들기

비표준 타임 스탬프 열이있는 대용량 CSV 파일 읽기

대용량 CSV 파일 읽기에 대한 IIS 7.5 문제

새 파일 만들기 및 자세한 스위치 사용

대용량 json 파일을 csv로 스트리밍

PHP에서 사용자를위한 CSV 파일 만들기

대용량 CSV 파일 가져 오기

대용량 파일 서버를위한 Linux 파일 시스템

csv 파일에서 여러 캔들 스틱 차트 만들기

Powershell-대용량 텍스트 파일에서 해시 테이블 만들기 및 검색

사용자가 모든 csv 파일에 액세스하기위한 csv 명령 줄 인수

CSV 파일에 Java로 MS 액세스 테이블 쓰기

Unity : 대용량 CSV 파일 읽기 및 업데이트

Python: CSV 파일 읽기 열 선택 및 여러 텍스트 파일 만들기

Python에서 pd.read_csv ()를 사용하여 헤더가있는 csv 파일에 한 번만 액세스

스트림 만 사용하여 CSV 또는 간단한 텍스트 파일 만들기

대용량 CSV 파일이있는 JMeter 매개 변수화 된 테스트

Altair는 Google Colab에서 대용량 데이터 세트를 렌더링하기 위해 파일 시스템에 액세스 할 수 없습니다.

csv 파일의 데이터 세트에 대한 테스트를 '병렬'로 실행하는 기능

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관