<?php
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '".mysql_real_escape_string($username)."'")or die(mysql_error());
while($row=mysql_fetch_array($result))
{
echo $row['FirstName'];
}
?>
Я хотел бы использовать 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))
более упрощенную версию с split()
в новых строках:
reader = csv.reader(scsv.split('\n'), delimiter=',')
for row in reader:
print('\t'.join(row))
Или вы можете просто split()
эту строку в строки используя \n
в качестве разделителя, а затем split()
каждую строку в значения, но таким образом вы должны знать о цитировании, поэтому предпочтительнее использовать модуль 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']]
Вот альтернативное решение:
>>> 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']]
https://docs.python.org/2/library/csv.html?highlight=csv#csv.reader
csvfile может быть любым объектом который поддерживает протокол итератора и возвращает строку каждый раз, когда его метод next () называется
blockquote>. Таким образом, все
StringIO.StringIO()
,str.splitlines()
или даже генератор хороши.
>>> 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
Как уже отмечалось, Python включает модуль для чтения и записи CSV-файлов. Он работает очень хорошо, пока символы ввода остаются в пределах ASCII. Если вы хотите обработать другие кодировки, потребуется больше работы.
Документация Python для модуля csv реализует расширение csv.reader, которое использует тот же интерфейс, но может обрабатывать другие кодировки и возвращает строки Unicode. Просто скопируйте и вставьте код из документации. После этого вы можете обработать файл CSV следующим образом:
with open("some.csv", "rb") as csvFile:
for row in UnicodeReader(csvFile, encoding="iso-8859-15"):
print row
Per документация:
И хотя модуль не поддерживает прямую поддержку синтаксических строк, это легко сделать:
blockquote>import csv for row in csv.reader(['one,two,three']): print row
Просто превратите свою строку в один список элементов.
Импорт StringIO кажется мне слишком сложным, когда этот пример явно указан в документах.
Официальный документ для csv.reader()
https://docs.python.org/2/library/csv.html очень полезен, что говорит
файловые объекты и объекты списка подходят
blockquote>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))
Panda - довольно мощная и интеллектуальная библиотека, читающая CSV в Python
. Простой пример здесь. У меня есть файл 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
Как только у вас есть данные, вы можете манипулировать воспроизведением со списком или другими форматами.