[PYTHON] 배열에 파이썬 csv 문자열
PYTHON배열에 파이썬 csv 문자열
누구나 csv로 인코딩 된 문자열을 구문 분석하여 배열이나 사전으로 바꾸는 간단한 라이브러리 나 함수를 아십니까?
필자는 필자가 본 모든 예제에서 문자열이 아닌 파일 경로를 사용하기 때문에 csv 모듈을 내장하고 싶지 않다고 생각합니다.
해결법
-
==============================
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.단순 - 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.다른 사람들은 이미 지적했듯이 파이썬에는 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.
>>> 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.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.문서 별 :
문서 별 :
import csv for row in csv.reader(['one,two,three']): print row
문자열을 단일 요소 목록으로 바꾸십시오.
이 예제가 문서에 명시 적으로있을 때 StringIO 가져 오기가 다소 과장된 것처럼 보입니다.
-
==============================
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.이것을 사용하여 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.대체 솔루션은 다음과 같습니다.
대체 솔루션은 다음과 같습니다.
>>> 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.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
데이터가 있으면 목록이나 다른 형식으로 재생할 수 있습니다.
from https://stackoverflow.com/questions/3305926/python-csv-string-to-array by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 두 날짜를 비교하는 방법? (0) | 2018.10.02 |
---|---|
[PYTHON] 사전 목록을 Dataframe으로 변환 (0) | 2018.10.02 |
[PYTHON] Python + Selenium을 사용하여 iframe을 선택하십시오. (0) | 2018.10.02 |
[PYTHON] 문자열에서 팬더 DataFrame 만들기 (0) | 2018.10.02 |
[PYTHON] Selenium : driver.quit ()를 호출하지 않고 geckodriver 프로세스가 PC 메모리에 영향을 미치지 않게하는 방법? (0) | 2018.10.02 |