From f31e960d781f95e419ab9bc4235fd78449178e83 Mon Sep 17 00:00:00 2001 From: wushanghui Date: Wed, 25 Nov 2020 22:22:00 +0800 Subject: [PATCH] csv --- csv/eggs.csv | 2 ++ csv/name.csv | 3 +++ csv/name.xlsx | Bin 0 -> 8671 bytes csv/name2.csv | 2 ++ csv/name3.csv | 3 +++ csv/name4.csv | 4 ++++ csv/read_csv.py | 27 +++++++++++++++++++++++++++ csv/write_csv.py | 30 ++++++++++++++++++++++++++++++ 8 files changed, 71 insertions(+) create mode 100644 csv/eggs.csv create mode 100644 csv/name.csv create mode 100644 csv/name.xlsx create mode 100644 csv/name2.csv create mode 100644 csv/name3.csv create mode 100644 csv/name4.csv create mode 100644 csv/read_csv.py create mode 100644 csv/write_csv.py diff --git a/csv/eggs.csv b/csv/eggs.csv new file mode 100644 index 0000000..9466ef0 --- /dev/null +++ b/csv/eggs.csv @@ -0,0 +1,2 @@ +Spam Spam Spam Spam Spam |Baked Beans| +Spam |Lovely Spam| |Wonderful Spam| diff --git a/csv/name.csv b/csv/name.csv new file mode 100644 index 0000000..0e9d562 --- /dev/null +++ b/csv/name.csv @@ -0,0 +1,3 @@ +name,age,sex +小明,20,男 +小红,22,女 diff --git a/csv/name.xlsx b/csv/name.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a6164494c010fa1d9752e3d49fe4b93a59546a24 GIT binary patch literal 8671 zcma)B1ys~u(_UIiLO`UuyGt6RrF#i!iKR=CE@_Z%kdP3NrMnTNyQLcz1ZnsdegDN9 z=ey_Z{`UNK=FYv(otZml9%Xqrcoe|>2v%AVy?_2OkfA?JK_<$MAbTfPWvCbq^u?oJ zVhy}AWo$4202eF(fcbYZV|#lRcUznEm^L{$b{wfQzdOt?AWmiqRStT;5J4ne7h+D( zY^wrx?B?(#GmA6%Ig;H8Nc|d(^U3h1T1Pj-gZ1Vgk1|0iDd6w^)iech4${c@X7aY0 z{7u>!k&$%Bbc*!W)?@{GkDOV4p1CiV!bK6lhT_t!IY(@nha*%4Ne4NA6`dJ&2}2!D z7|o0282Ku8@?rdKQp|$Ucpl{kIIcCLTD?xII$s(cEsA8-XQ^R$9& zxAtRsd-XQ3a#>IWZe{@}v+w_%c~Do`@;UM)kAZOBnl9oNfzzy9Szg=peAnpk?kvK| z%FV^m{wWK~GSlUDX=2Bg@-7_vHk`^HVuN2NRs^s;ubZIVLqjIY8}Kry^|?g5B3~Fc zAU|EA`F5ptTZ{MV!tMy+pXiqQWNkD33tgxv)@FaknalcNdIC;P(%D zM$MHP-uCEYE>6)11|R&*6u2%#C5;i&v4J0^t`FYTNNGrOU>8`WmAXF5=H(ygy=uK2 z5&4#e!Y~hFy_3)%v#BC80BHDnFVtPa{u9~`|5T}4D5US8@ILtmv@TB0AlqNQ8$Iwk zfDK3bEU;OkSD41UTT_a-XwatKGJ9-B9@_$zCWdNOZo7e(<7OtYq5dstuoI}_jTT%| zpv&kMb~l!xI$}J2u@9_E?V(isn*RW>QqNSp(rVYgW`_XDHfGXsm60wWwvr6^X11wqOY;N1fGaa{2{2Z9o9yu4ZZ%47d zgz2Z<*p+>JO=TlGBuv`PyJ;&WD?UO)VO&kWfOpQy0ErUQ_^z>kS-XRJ57&QA2XIih z+--g(g8wY=__u%?$kE!#(#*{HVbV~{I+3P=CX7vZ0095rWPho!-ycAPx*{l-4YR2X zeAjl|gnyj=sBl(tL~}O2=wNEbmt31YsVe>B&6yw%Dq#vyA53yG?_twXc*vn4qpVU^ zgtCixF4;%;9fkFrMcR|isQm>$Y!i=kr%$hCwg~Y(GvD3fWX208VYgzN7AlI%Tc_fh z&@g7N&?uviC((cST-)`s$s&KG)yYs@mItNdS#fQlRe$*?>9VpEImdM2p0=2+9yWTc z-U&!45h3o zLvq2^)ZSt93CKXi5mRu|U<2bmxJsk5b-t=WTHOMy6Hcn$#oAba*Z`2Q69 zCH%|x_H`6NguIwdPq)0a_nKl%cPTk2kgA1OXk4)+<=zv00=`bfa;qbw7p%wqS|RG2 zV>Kf0yXZ+bizwq`FlxBUBb5q!flBPC#i*L|x~G?%`IRBnLF)4AHwb!Nz2m8|c$3LD z1Y@h7GGNgqi4q)MEZ5Gt+YA3FmaB|tI&>^E`h#;Prt9Jc(s%X<`@Q(I({NYnds&gB z^2z(^3=}@bR4f%}1rVEdcR#AP>nhZ1TkzL3;4d1bJdDT`pAPfrU}|b;o?sh!yDeA0 zY;$7>BzQze%241=OsHgyLcWnBU*{HX*%SOs+?AspBkxd!ib`nfT;pa_%e72>Sjkv& z9Z|2tF6$1Zp`9$vZkykOi-opyitu#9VA~L`P`~F?@5a1E=W+~y17ALx7Pehkv9x%| zjZy;BCnE6nOt)!2C6MqY`7i@v9lea=4wfk#ko0ZM*NdU6;oS)o3bMI0W!d7(@;88jZA@rduMX-`WA`81Y% zS()MW`DGX9;b~YwK~zSj@a6i+(dyU>kvDKroQ{cPhkMJL_)MU?&Awf3NY8g?;_a;JUYM9}?=PbLJ_-S%heia_{<0(Q?g-jz;R5_ajc zXKsk!gHrlKAeITz2VXC~buNf)O>?_F&C`5+Rfz_UtJQZku^DMpRAEpFP-A+28m`Fh zT5=#vuBjg-)0%AbWP5>jQJ7*dI=pw9;bYzij4TnRkJK2$r-l`BI@cWouwNryV}6~Ma^&0e4c$dWPL5p zrddCP=hu*xMw4geTS&`!(7Vq4t>lt;a2wvZl!I(9!GMJf53c&%^PTEAB9Qw=%hTXu5jzMx2hg zkH0HeJhK&nE6X0>-=}0K;NU^r|LVNZl|#X3nIaM#(UW`~(Cdz$i>7qQZO9)gxh#Nf z&<#INa9TcA(>|u-*x7zPsZ;!k(42(?_UpQPl}cnsgxJQGxwS_e!-92nO!E=TBf2?W za$^PaxM|mDOJ+ok=#v`)zYVf%t)H6OU}7c~#(h9(9GtKV-Yi)H!tGqi#u+sLn z;yA$!FFlH$&P;rLo0`0cqfiW61X0Z`^fAkyd%xSg{%K-8&oxp(k1E`;Qg*9%i-hJC z&PtBJ#FmF;qt)lR{tvn*>U8h5@ws#p?;^USoX}m1XGPW2=q-2Bov$}s;pAvUb$T*e z_lbpRo{dK;)9Oi5x?kYRWPr}Y=;XTt_sFp}VWx88ip9jKHb|&td$jsl$3)di$y4-f zQQ?=!zrrJpDm1X?P^5b!1P)cTU#O=V5|uE`pp8Bc?|1@Iu(*Eg zhiwgh&EP|h1$keP@Pd;HqWJ~qi`h*nSH8IGz?5Ho(6NJLB|a{37tRl&&v}g>b6eus z*_v^!gM0|c=?RwkRM98ViY65MKgT#tPrD59sK#(gI?Zr0Yp4LnN?%Q)h4GYQ_lI$N z_)k!D4zmnA&XhkZTC0AlTjQui*8mUS7@nECn~_V7Kb{b$Gmf+B@=P-Y7(Ux%Qqjs; zm|h@@U$mrO3k=npp-dZV`yMDDGF__4jHZaUDMxH|(-C-q3P&gcINEA!n12>e@$?b; z>xAzIq)-KnRLub%pG6gO=Z z!E_9|r!2)% z<4AB=5EGUiumz)NKB4)lvVyev_Ed{@Z9rqY&sys<-R^rwJx?HH|K%i}_siOn7?G(m z6Pl$4=C4)SBAU;*OBJYy)qwF7IwQ1^KVCKKrm$u!5{4#!^XigIzd9z8+p?lo{har+ ztGSt=OMI(Q7iVE0!uOC`Y!WAgqy9@B*0p}UNu7@fI)B4v!>tSoj5MYhZo?A6>{{g4 zZIFS`n~=lV8floUD9jzi`k;!Z3;fPP-T^F=A>kjWz9q^K?C-mpj&XswYH+C&`QA=B z8aK$~O>;>bnWkjOC!|b)9fH8ULI}6X<}5M%1A0cf&4o?%X)Em-FEUo5-P@M?U|-;{ zEJ&8+bl^%XNp9837|XX#!#b3r;?lvIm;xJ6M+u%<5kD0S52J`#VN%-54>br(<~6KA zd1*Uky*KwlT$Q0~f1K| zmm3wm1aYL(Z+)Ik=yxZY4cS$CMSePm(!7EOOTysnP`mHKpStm5w3g8>q{56T=JzSi z@Ia~!M(h=`Dad7hW>Tf*lwzTe$*d-KOY3JR(W)%W>_mV5__m$ERY*M^m45a{ z`GT<`(@H}V`z}_1BH!_YwYfUK-S|jx+Cim<0lRxF^4KiUdpvlbgnrgaWrRYguDWh{ z)*sVco6-VAdV_ug$F+3aF-+Q?+HA6ak+I%Br>lTszo`C618$s|p zaEPG0Erf_YHj=2kBvebHRixLd zjLE|CEd40DFSHL?Z4jO72U|+eDA$fI+)J9U1jY8up~h)LA}R`yt<_ebQ6moi4;=aL z>@UmFsD9vhNYwUrn_`KSMW9Iu6F&1xAr<9o0F z1tnu@0xG7(2@eY=g>OMOXl>GG7!$9s2S4FVKhT&iFAJZ*lBZ*8&E?!GGhPWiqaomU z$CcF)GZOU5jn9Z@c3Bj5woVEOFs!HT60sPY9sG8BzFgm8h;Wu<4{0uUcsqMxjpQx( zD;{K-ER`9I&aQ_pAeB&NN=#JyLIfYfZ9gUygTsg!GQlhqO_K@gB%n%MB)G_4Ks_2k z;TmlAi&g$%LOs#P@YP*4*a>aojqUe=NC83MhNPybrCGh-}FJ+hu zF+98GdwKKoa*lLS*ODhld@_j$0`Vw(&Yuk$-J=b=CgN=$ducGtC3cn~jyi2~V2g>n zYy|IFcC26aVHstSZ;W2VecIGd*4F5w0?_I< z3LK5+>dCsw;qlRnVyyOf#kj){YiKvhnT?o6W2dj5-!~ECKvffDKuuhkFBay))HF|c zt}@zR?OIAvDuvEXW}@=NseeC@xVXoN{x?iEM5s z=~C`%tlDFdIjRq4Vo}yaehPmmiJLTy;*4b}ww+yGezLaRbWSI2dcAki@%1K7nnJi}SR`Yy94t^m~IsIvZ&4x%y+*7j{E z6dm`aUK0>@OV0PcDAx zC^((mIk^=sltgIdyNZn1HRnKfXxP)!Ck3rAF+a+)AyQZH;aWzkhOOqVmx+l5QH4nE zTW#4GFriSL9ibf~5xLgydk2E78N%5d9@A}Y6fm;pUufG_mn|N#v+;XKcOCco?`Ql7 z$wQQgtW*kGaE3|UZiy^#yL&1>>7Eort2btu{`Q^R;id`#dWuYEfm?yMaI(<(&Dw3# zc8{T|ZgWuE3^ELJk#UcqGBycMR;iEa<H3nZ_DFc^ zDf|1xYI@f6dZpYFHM`dPmyQgV`pT=q_IE2myZMHC{OXwCE7 zVf?ei3LhG8gMMd5rdm1qK~~8{3Nt<>Nf;pljf1_IK@~;e-{8*2E0AKYr$T#=-F|XEb42oOyJhY9puny9bfrN9T(W zFG%bwL#qSN6Y8lDY~AMrUwDb%N@TsSrKx~C9<*N#=R1apz_U1^yh|?22yqa!@$x2l zr*xIQ7*#`_w{o+4{V{P@Wcwuj>OtRn#zXu)9dxq`&=1D%4c|8dUx7f@zxsMH{Yo8d zm{Mml*Z$mZcDTF>)fE}YMV ztO@C+jI-d!6rv%Kc!`pm_$P&Lcq9zeVfD3(Y6so1=>v;VNP#XKmSX_qLMe)i3Ke1T zx}x~*8+)uLi!CS;^+Nh#(DG6D~?^sCcv?JN6jNL)LWmS z%(?HoQCr8yf4))X;6_*rlaeNR-1JmEm?oz5!a2i5=r(wSP^?6lW3Kq^?zd-gtHAka z%)Sm)6>J{I`6nzx4B5rDM!>D71!FqGySywSYPW#@-rGWif@ra&!^yKXj7|E-5u< zMwikLOj3J4zpmfnz?9shuSEKuI&0uUbZl(1y)9-$58N*!5I~)?dq>65)47)5AU$-&=;!dMT5lK}dJ2JUaMzkBl^=)Ue?L+d{DZ}K1Uau|(Z zmrgh6&YCKH12AFqwtR&oua{br*_*AC<(#OGmKo4;NZUWRPq%91KVAfNYv&Okz+)Gi3y#4}(M8R%bs= zkjmG^m?XB1@Qm9W61X|_aa{iNb5V5midH$;A$sku$wZ^-@lwv!0XroAkz$16mI(h> zcdBlliC#p!b%hWy!(b16+@KyM1E>6?lhX5nlp`j=c7Cr|Pk}H!w5}Aif~3fCvg2pP4eGWlXcN~h=khInG_f@v`*fvQu&E#3fbXR zm!yPZh9^+Os5Lw9_^8?;<7#YhPjC6~n))B*2DomxwN@WQ*qvE#8fp~&;p9y=0w zi7EvZwP-|6pNxG<5G6pB$5J1zE)k9Qr6Q+67szUS3`kNZtyK*=#^zWHAY|3qmKnxXzoP!AXSFq7Te`Hd0+;osE$ zEw4SC=V2-H*E|YOf6eo6h0Vhm9`@V*nqeF5_Y8k_-~Ru5uZDUjbnky~J^%EOhiuPZ z78m}m_80f_aLEtLnZG7@4y7-lcK;6B|624tG5UMlpD^3+6TVmelP3M=${!M?_qxAN cP5<9?|DsKm`bD;59?fCQCmC%)JFKO73p=Kufz literal 0 HcmV?d00001 diff --git a/csv/name2.csv b/csv/name2.csv new file mode 100644 index 0000000..4bfbf83 --- /dev/null +++ b/csv/name2.csv @@ -0,0 +1,2 @@ +name,age +小明,20 diff --git a/csv/name3.csv b/csv/name3.csv new file mode 100644 index 0000000..448be73 --- /dev/null +++ b/csv/name3.csv @@ -0,0 +1,3 @@ +name,age +小明,20 +小红,21 diff --git a/csv/name4.csv b/csv/name4.csv new file mode 100644 index 0000000..f4483c2 --- /dev/null +++ b/csv/name4.csv @@ -0,0 +1,4 @@ +first_name,last_name +Baked,Beans +Lovely,Spam +Wonderful,Spam diff --git a/csv/read_csv.py b/csv/read_csv.py new file mode 100644 index 0000000..99cfe12 --- /dev/null +++ b/csv/read_csv.py @@ -0,0 +1,27 @@ +import csv + +# 第1种 +file_name = 'name.csv' +with open(file_name, newline='') as f: + reader = csv.reader(f, dialect='excel') + header_row = next(reader) + for index, column_header in enumerate(header_row): + print(index, column_header) + + names, ages, sexs = [], [], [] + for row in reader: + names.append(row[0]) + ages.append(int(row[1])) + sexs.append(row[2]) + + print(names) + print(ages) + print(sexs) + + print('-------------------') +# 第2种 将每行中的信息映射到一个 dict +with open(file_name, newline='') as f: + reader = csv.DictReader(f) + for row in reader: + print(row) + print(row['name']) diff --git a/csv/write_csv.py b/csv/write_csv.py new file mode 100644 index 0000000..08890c4 --- /dev/null +++ b/csv/write_csv.py @@ -0,0 +1,30 @@ +import csv + +title = ['name', 'age'] +d1 = ['小明', 20] +d2 = ['小红', '21'] +dicts = [title, d1, d2] + +# 一行一行写 +file_name = 'name2.csv' +with open(file_name, 'w', newline='') as f: + writer = csv.writer(f) + writer.writerow(title) + writer.writerow(d1) + +# 一次全写出去 +file_name = 'name3.csv' +with open(file_name, 'w', newline='') as f: + writer = csv.writer(f) + writer.writerows(dicts) + +# 使用字典写 +file_name = 'name4.csv' +with open(file_name, 'w', newline='') as f: + fieldnames = ['first_name', 'last_name'] + writer = csv.DictWriter(f, fieldnames=fieldnames) + + writer.writeheader() + writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'}) + writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'}) + writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'}) -- GitLab