@wywm@z[y[W
ŏIXVF2025N13
@܂APythonŏꂽZ^vOFadbook.py̎gĂ܂B
@Kvȃ\[X́Aadbook.pyCadclass.pyCadsub.pyCadglobal.pyłB܂Ƃ߂Ĉ̃fBNgɓĂB
@ɁAZ^t@Ci[fBNgadglobal.pyad_pathƂϐɐݒ肵܂BPythonł́AfBNgw肷镶'\'́AGXP[vȂ̂ŁAfBNgwɂ'\\'2d˂邱ƂɒӂĉB
@IDLEʂŁAadbook.pyǂݍ[Run]j[[Run Module]NbNƏZ^vON܂BR}hCvvgłAexplorerʂadbook.py_uNbNĂNł܂B
@uƊJnvƕ\ꂽAŏ́AZ^Ȃ̂ŁA
c:correct, d:dup-check, e:end, l:list, r:remove,
s:sequential input, n,p,a,t,m:search
command:
\āAR}h͑҂ɂȂ܂BŎgR}h́App1ŁAc CdCeClCrCsCnCpCaCtCmłB
f[^͂ꍇɂ́AsR}hg܂BR}h͑҂̎ɁA
s[Enter]
ƂƁA̓[hɂȂA
name:
ƕ\ē͑҂ɂȂ܂BO(20ȓ)͂[ENTER]ƁA
postcode:
ƕ\ē͑҂ɂȂ܂BX֔ԍ(3AnCt'-'A4ApłSpłOK)͂[ENTER]ƁA
address:
ƕ\ē͑҂ɂȂ܂BZ͂[ENTER]ƁA
telno:
ƕ\ē͑҂ɂȂ܂Bdbԍ(045-123-4567C090-987-6543̂悤ɁAsOǔԁAsǔԁAdbԍnCt'-Ōт܂BsOǔԂȗĂnCtȂłOKCpłSpłOK)͂[ENTER]ƁA
mail:
ƕ\ē͑҂ɂȂ܂B30ȓ̔pŃ[EAhX(xxxx@yyyy.com̂悤)͂[ENTER](ňꌏ̏Zo^܂)AĂсA
name:
ƕ\ĖO̓͑҂ɂȂ܂BAZ^̃f[^͂𑱂邱Ƃł܂AŁA͂[ENTER]ƁA̓[hI܂Bname:ɑ e [ENTER]ƂĂ"e"ƂOƔf邾postcode:ƕ\Ē̓[h͏I܂B̓[hIăR}h͂ɖ߂̂́Aname:ɑĂ̂܂[ENTER]ƂłB
@pastcode:Caddress:Ctelno:Cmail:ɑĉ͂Ȃ[ENTER]ƁAO͗LŁA̍ڂɂȂ̂ŁAf[^ƂďC[hɈڍs܂B
X֔ԍAdbԍ́ASpœ͂ł܂Apɒēo^܂B
R}h͑҂̎ɁA
c[Enter]
Ɠ͂ƁA
specify data no. following c
ƕ\čēxR}h͑҂ɂȂ܂(AAd`FbNR}hdŏdoꂽ́A c [ENTER]ŏdf[^ɑC[hɂȂ܂)B
@炩߁A
l[Enter]@(ĺA1ł͂܂BAt@xbgL̏ł)
ƂđSf[^\ĂACf[^̔ԍIсA12ԂƂƁA
c12[Enter]
ƂƁA12Ԃ̃f[^\A12Ԃ̃f[^ɑďC[hɂȂ܂BC[hɓƁA
modify mode command(n,p,a,t,m,e):
ƕ\ē͑҂ɂȂ܂BO؎OYɒ̂łA
n؎OY[Enter]
Ƃ܂BX֔ԍ104-0751ɂ̂łA
p104-0751[Enter]
Ƃ܂BZ𓌋s4-10-35ɂ̂łA
as4-10-35
Ƃ܂Bdbԍ03-1234-5678ɂ̂łA
t03-1234-5678[Enter]
Ƃ܂B[EAhXaoki1973425@gmail.comɂ̂łA
maoki1973425@gmail.com[Enter]
Ƃ܂Bf[^̑OɁAnpatmtĂǂ̃f[^̂w肵܂BC[hăR}h̓[hɖ߂ɂ́A e [ENTER]Ƃ邩AȂ[ENTER]܂B
R}h͑҂̎ɁA
d[Enter]
Ɠ͂ƁAf[^̏dmFs܂BAȀZ^vOł́AȌd`FbNs܂B̍ڂd`FbN̂łAvOĂBdƂ́Admꂽf[^̔ԍdf[^̃Xgɓ̂ŁAāAR}h͑҂ɑāA c [ENTER]Ƃ邾ŏC[hɈڍs܂B
R}h͑҂̎ɁA
r12[Enter]
Ɠ͂ƁA12Ԃ̃f[^폜܂(̃vOł͈x폜ƌɖ߂܂BUԃobt@ɎcAŕł悤ɂȂAvOĂ)Bʏ́AdR}hŏd`FbNsAdĂf[^폜̂rR}hg܂(AAr12ƂĂ12Ԃdf[^ǂ̃`FbNsĂ܂)B
@R}h͑҂̎ɁA
nOY[Enter]
Ɠ͂ƁAOɁuOYv܂ރf[^ďC[hɈڍs܂Bu㓿OYvuѓOYvuOY֕vvI܂Bꂽf[^ꍇɂ́A
which? enter no.:
ƕ\̂ŁACf[^̃f[^ԍ͂ƏC[hɈڍs܂B
p011[Enter]
ȂA011܂ޗX֔ԍ̃f[^I܂B
a[Enter]
ȂAZɓ܂ރf[^I܂B
t045[Enter]
ȂAdbԍ045܂ރf[^I܂B
mminato[Enter]
ȂA[EAhX"minato"܂ރf[^I܂B
@R}h͑҂̎ɁA
e[Enter]
邢́AꂸɒPɁA
[Enter]
ƂƁAZ^vOIAf[^()Z^t@Cɏo܂BZ^́Aadglobal.pyad_pathƂϐɎw肵fBNgɁACadbook.pybookNX̃CX^XƂɎw肵Õt@Cō쐬܂B쐬ꂽZ^t@C\vZ\tgEXCELłǂݍ߂悤ɁAcsvt@CƂďo͂܂B
@xZ^t@C쐬ƁAȍ~AZ^vONƁAZ^ǂݍňꗗ\ĂAR}h͑҂ɂȂ܂B
@LɃ\[XR[hꂽy[Wւ̃N\Ă܂BNRs[āAWindows̃A邢́Ap̃GfB^Ƀy[XgAR[hFUTF-8ŁAw肳ꂽt@C(gq"py")ŕۑApB
@̏dvȃ|CgɐGĂ܂B
@̏Z^ł́AZ^t@C̃f[^ǂݍ̂ɁAVK̃f[^L[{[hlj͂AVɏZ^t@CɏoAƂlłłĂ܂B
@܂At@C̓o͂łAPythonł́ǍƓlɁA܂Aopen()ƂŃt@CJAt@CEIuWFNgread()\bhœǂݍ݁Awrite()\bhŏ݁AǂݍݏݏIɃt@CEIuWFNgclose()\bhŃt@CAƂ菇ɂȂ܂B
@Z^t@ĆACSVt@CƂĕ\vZ\tgEXCELłǂݍ߂悤ɁAef[^AOAX֔ԍAZAdbԍ','ŋĊi[悤ɂ܂B4̍ڂ̂ŁA','1̃f[^3͂łB{Z^vOł́AIuWFNgstr1count()\bhg','̌𐔂A3łȂG[ɂĂȌ̏sȂ悤ɂ܂BɑAIuWFNgstr1split()\bhpāAstr1','ŕďZ^t@C1s疼OAX֔ԍAZAdbԍXgdɎo܂BXgdɂ́A[O,X֔ԍ,Z,dbԍ]Ƃ悤Ƀf[^܂B
@̌AXgdA1f[^oāANXpersoñCX^Xe쐬AéAXgpersoñXgłZ^IuWFNgbookappend()\bhpāAbookɕt܂Bappend()\bh́AXgɗvft郊Xg̃\bhłB
@t@C݂ɂẮAfor c in bookƂāAbookIuWFNg̒ɁAZ^̌ʃf[^c݂胋[v܂Bc̓NXpersoñCX^Xł郊XgEIuWFNgŁAOAX֔ԍAZAdbԍĂ܂BCSVt@Č`ŏo͂邽߂ɁAadclass.pyɁAcsvline()ƂNXpersoñ\bh܂B̃\bh́AOAX֔ԍAZAdbԍ','łȂreturn܂B́Astr1Ƃ܂A
str1 = "%s,%s,%s,%s" % (self.name, self.postcode, self.address, self.telno)
̃\bhc.csvline()Ƃ悤ɌĂяoƁAcƂXgEIuWFNgselfƂāAselfname, postcode, address, telnoƂevfA%s(o)Ƃ`ŁAstr1Ƃɏo͂܂BƂ́Ac.csvline()̖߂lƂĂłĂ镶At@CEIuWFNgfd1write()IuWFNgŃt@CɏނƂƂɂȂ܂B
Z^IuWFNgbookŜɂāAZ^f[^t@CɏAŌɁAfd1.write('\n')ƂāA1[LF]݂܂Bwrite()\bh̍ŏ[LF]ł悤łAŌ̍s[LF]ȂԂŏIĂ܂łB[LF]̕R[h(16i0A)́APythonł'\n'ƕ\܂B
Z^t@CǂݍނƁAL[{[h̏Z^͂Ɉڂ܂BL[{[h̓͂ɂ́Ainput()g܂Binput()ł́AɕnƂŁAvvg\ł܂Bvvgƌ̂́AL[͂vOɕ\镶̂ƂłBPɉʏŃL[͑҂ɂȂĂ悢̂킩܂BŁAʂɁA
OF
ƕ\ĂL[͑҂ɂȂ悤ɂ܂B̂߂ɂ́Aname = input("OF")Ƃ܂BăL[͂[ENTER]L[A͂ꂽnameƂϐɓ܂Bpostcode = input("X֔ԍ(012-3456)F")ƂAʂɁAvvg
X֔ԍ(012-3456)F
ƕ\ăL[͑҂ɂȂ܂BL[͂[ENTER]L[A͂ꂽpostcodeƂϐɓ܂B(012-3456)ƏĂ̂́Â悤Ȍ`œ͂悤ɑ߂łBlɂāAZAdbԍ͂܂Be͂̌ŁAlen()pāA̒߂Ă܂Bname"؎OY"ƓĂƂAlen(name)4ɂȂ܂(R[hUTF-8ɂĂ邩łAShift-JISɂ8ɂȂ̂m܂)Blen(name)0ɂȂƂ́AnameƂĉL[͂ȂƂӖȂ̂ŁAcont_flag = FalseƂďłɂĂ܂B
{Z^vOł͏Zf[^͂̑OɁA
if cont_flag:
while cont_flag2:
2sĂ܂B́AZ^t@C̓ǂݍ݂ɐ(cont_flag = TrueɂȂĂ)ƂZf[^̓͂ƃt@Co͂sAZf[^͂Ă(cont_flag2 = TrueɂȂĂ)͏JԂAƂӖłB
yLz@LłB̊F܂̂x肽A낵肢܂B
yLz@L͂܂łłB