> 백엔드 개발 > Golang > Golang 함수가 파일 이름을 올바르게 읽을 수 없습니다.

Golang 함수가 파일 이름을 올바르게 읽을 수 없습니다.

PHPz
풀어 주다: 2024-02-06 11:18:03
앞으로
1267명이 탐색했습니다.

Golang 함수가 파일 이름을 올바르게 읽을 수 없습니다.

질문 내용

그래서 데이터베이스의 테이블 스키마가 포함된 여러 .csv 파일이 포함된 저장소가 있습니다. 나는 저장소에서 파일 이름 목록을 가져온 다음 해당 파일을 열고 내용을 읽고 MySQL CREATE 쿼리를 생성하는 Golang 코드를 작성했습니다.

제가 직면한 문제는 일부 .csv 파일의 경우 Golang 코드가 헤더를 잘못 읽게 되어 나중에 문제가 발생한다는 것입니다. 예를 들어 onfig_hr.csv, onfig_oe.csv,tribution_analysi.csv로 읽혀지는 config_hr.csv, config_oe.csv,tribution_analytic.csv라는 파일이 있습니다. 이 문제는 이름을 대문자로 쓰면 해결될 것 같았지만 프로젝트 후반부에는 다른 문제가 많이 발생했습니다.

이것은 일종의 인코딩 문제인가요? Windows, Mac 및 Linux에서 코드를 확인했으며 Golang 버전은 최신 v1.21입니다. 도움이나 통찰력을 주시면 대단히 감사하겠습니다!

CSV 파일 이름을 읽는 Golang 코드 조각

entries, err := FileEntry.Readdir(0)
    if err != nil {
        log.Fatal(err)
    }

    // Now, open all the files one by one, and extract the content of the files.
    // Then modify the resultant string to be of MySQL compatibility.
    for _, e := range entries {
        // Mimicking the SQL Query of Table Creation query.
        Query_String := ("CREATE TABLE IF NOT EXISTS " + strings.ToLower(strings.Trim(strings.Replace(e.Name(), " ", "_", -1), ".csv")) + " (\n")
        fmt.Println("Opening -- " + file_folder + "/" + e.Name())
        file, err := os.Open(file_folder + "/" + e.Name())
        if err != nil {
            log.Fatal(err)
        }
        defer file.Close()
        // Reading the CSV file from path.
        reader := csv.NewReader(file)
        records, err := reader.ReadAll()
        if err != nil {
            log.Fatal(err)
        }
로그인 후 복사

정답


string.Trim 함수를 다음 함수로 대체하세요.

으아악

샘플 코드:

으아악

위 내용은 Golang 함수가 파일 이름을 올바르게 읽을 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿