복붙노트

[PYTHON] 배열에 파이썬 csv 문자열

PYTHON

배열에 파이썬 csv 문자열

누구나 csv로 인코딩 된 문자열을 구문 분석하여 배열이나 사전으로 바꾸는 간단한 라이브러리 나 함수를 아십니까?

필자는 필자가 본 모든 예제에서 문자열이 아닌 파일 경로를 사용하기 때문에 csv 모듈을 내장하고 싶지 않다고 생각합니다.

해결법

  1. ==============================

    1.StringIO를 사용합니다.

    StringIO를 사용합니다.

    try:
        # for Python 2.x
        from StringIO import StringIO
    except ImportError:
        # for Python 3.x
        from io import StringIO
    import csv
    
    scsv = """text,with,Polish,non-Latin,lettes
    1,2,3,4,5,6
    a,b,c,d,e,f
    gęś,zółty,wąż,idzie,wąską,dróżką,
    """
    
    f = StringIO(scsv)
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        print('\t'.join(row))
    

    newlines에서 split ()을 사용한 더 간단한 버전 :

    reader = csv.reader(scsv.split('\n'), delimiter=',')
    for row in reader:
        print('\t'.join(row))
    

    또는이 문자열을 구분 기호로 \ n을 사용하여 여러 줄로 분할 한 다음 각 줄을 split ()하여 값으로 나눌 수 있습니다.하지만이 방법을 사용하면 따옴표를 인식해야하므로 csv 모듈을 사용하는 것이 좋습니다.

  2. ==============================

    2.단순 - csv 모듈도 목록과 함께 작동합니다.

    단순 - csv 모듈도 목록과 함께 작동합니다.

    >>> a=["1,2,3","4,5,6"]  # or a = "1,2,3\n4,5,6".split('\n')
    >>> import csv
    >>> x = csv.reader(a)
    >>> list(x)
    [['1', '2', '3'], ['4', '5', '6']]
    
  3. ==============================

    3.다른 사람들은 이미 지적했듯이 파이썬에는 CSV 파일을 읽고 쓸 수있는 모듈이 포함되어 있습니다. 입력 된 문자가 ASCII 제한 내에서 유지되는 한 꽤 잘 작동합니다. 다른 인코딩을 처리하려는 경우 더 많은 작업이 필요합니다.

    다른 사람들은 이미 지적했듯이 파이썬에는 CSV 파일을 읽고 쓸 수있는 모듈이 포함되어 있습니다. 입력 된 문자가 ASCII 제한 내에서 유지되는 한 꽤 잘 작동합니다. 다른 인코딩을 처리하려는 경우 더 많은 작업이 필요합니다.

    csv 모듈에 대한 Python 문서는 동일한 인터페이스를 사용하지만 다른 인코딩을 처리하고 유니 코드 문자열을 반환하는 csv.reader의 확장을 구현합니다. 문서의 코드를 복사하여 붙여 넣기 만하면됩니다. 그런 다음 CSV 파일을 다음과 같이 처리 할 수 ​​있습니다.

    with open("some.csv", "rb") as csvFile: 
        for row in UnicodeReader(csvFile, encoding="iso-8859-15"):
            print row
    
  4. ==============================

    4.

    >>> a = "1,2"
    >>> a
    '1,2'
    >>> b = a.split(",")
    >>> b
    ['1', '2']
    

    CSV 파일을 구문 분석하려면 다음을 수행하십시오.

    f = open(file.csv, "r")
    lines = f.read().split("\n") # "\r\n" if needed
    
    for line in lines:
        if line != "": # add other needed checks to skip titles
            cols = line.split(",")
            print cols
    
  5. ==============================

    5.csv.reader () https://docs.python.org/2/library/csv.html의 공식 문서는 매우 유용합니다.

    csv.reader () https://docs.python.org/2/library/csv.html의 공식 문서는 매우 유용합니다.

    import csv
    
    text = """1,2,3
    a,b,c
    d,e,f"""
    
    lines = text.splitlines()
    reader = csv.reader(lines, delimiter=',')
    for row in reader:
        print('\t'.join(row))
    
  6. ==============================

    6.문서 별 :

    문서 별 :

    import csv
    for row in csv.reader(['one,two,three']):
        print row
    

    문자열을 단일 요소 목록으로 바꾸십시오.

    이 예제가 문서에 명시 적으로있을 때 StringIO 가져 오기가 다소 과장된 것처럼 보입니다.

  7. ==============================

    7.https://docs.python.org/2/library/csv.html?highlight=csv#csv.reader

    https://docs.python.org/2/library/csv.html?highlight=csv#csv.reader

    따라서 StringIO.StringIO (), str.splitlines () 또는 생성기가 모두 좋습니다.

  8. ==============================

    8.이것을 사용하여 csv를 목록에로드합니다.

    이것을 사용하여 csv를 목록에로드합니다.

    import csv
    
    csvfile = open(myfile, 'r')
    reader = csv.reader(csvfile, delimiter='\t')
    my_list = list(reader)
    print my_list
    >>>[['1st_line', '0'],
        ['2nd_line', '0']]
    
  9. ==============================

    9.대체 솔루션은 다음과 같습니다.

    대체 솔루션은 다음과 같습니다.

    >>> import pyexcel as pe
    >>> text="""1,2,3
    ... a,b,c
    ... d,e,f"""
    >>> s = pe.load_from_memory('csv', text)
    >>> s
    Sheet Name: csv
    +---+---+---+
    | 1 | 2 | 3 |
    +---+---+---+
    | a | b | c |
    +---+---+---+
    | d | e | f |
    +---+---+---+
    >>> s.to_array()
    [[u'1', u'2', u'3'], [u'a', u'b', u'c'], [u'd', u'e', u'f']]
    

    다음은 문서입니다.

  10. ==============================

    10.Panda는 Python에서 CSV를 읽는 매우 강력하고 스마트 한 라이브러리입니다.

    Panda는 Python에서 CSV를 읽는 매우 강력하고 스마트 한 라이브러리입니다.

    여기에 간단한 예제가 있는데, 네 개의 파일이있는 example.zip 파일이 있습니다.

    EXAMPLE.zip
     -- example1.csv
     -- example1.txt
     -- example2.csv
     -- example2.txt
    
    from zipfile import ZipFile
    import pandas as pd
    
    
    filepath = 'EXAMPLE.zip'
    file_prefix = filepath[:-4].lower()
    
    zipfile = ZipFile(filepath)
    target_file = ''.join([file_prefix, '/', file_prefix, 1 , '.csv'])
    
    df = pd.read_csv(zipfile.open(target_file))
    
    print(df.head()) # print first five row of csv
    print(df[COL_NAME]) # fetch the col_name data
    

    데이터가 있으면 목록이나 다른 형식으로 재생할 수 있습니다.

  11. from https://stackoverflow.com/questions/3305926/python-csv-string-to-array by cc-by-sa and MIT license