>Be on your guard! If another disciple sins, you must rebuke the offender, and if the same person sins against you seven times a day, adn turns back to you seven times and says, 'I repent,' you must forgive. (LUKE17:3-4)
#æä»¶(1)
æä»¶ï¼æ¯computerå§å¨ä¸é常éè¦çä¸è¥¿ãå¦å¨Linuxæä½ç³»ç»ä¸ï¼ææçä¸è¥¿é½è¢«ä¿åå°æä»¶ä¸ã
å¨Pythonéï¼å®ä¹å¾éè¦ãåªä¸è¿ï¼Python 2åPython 3对å®çæåº¦æç¹ä¸åã
å¨Python 2ä¸ï¼æä»¶ä¹æ¯ä¸ç§å
建类å对象ï¼å
¶å°ä½çåäºåé¢å·²ç»å¦ä¹ è¿çåè¡¨ãæ´æ°ãå符串çç±»åã
å¨äº¤äºæ¨¡å¼ä¸ï¼æä»¬å¯ä»¥ç¨`dir()`è¿ç§å·²ç»çç»çæ¹æ³æ¥çç¸å
³å±æ§åæ¹æ³ã
>>> dir(file)
['__class__', '__delattr__', '__doc__', '__enter__', '__exit__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'closed', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'mode', 'name', 'newlines', 'next', 'read', 'readinto', 'readline', 'readlines', 'seek', 'softspace', 'tell', 'truncate', 'write', 'writelines', 'xreadlines']
ç¶èï¼è¿ä¸åå¨Python 3ä¸é½åäºãå¨Python 3ä¸ï¼å没æ`file`è¿ä¸ªå
建类åäºãå¦æè¯»è
使ç¨çæ¯Python 3ï¼æ§è¡`dir(file)`ï¼ä¼æ¥éï¼å¹¶ä¸æ¾ç¤º`NameError: name 'file' is not defined`ã
ä½ï¼è¿å¹¶ä¸å¦¨ç¢æä»¬å¯¹æä»¶çç ç©¶ã
æä¸è§å¯Python 2ç`dir(file)`ç»æï¼é颿`__iter__`è¿ä¸ªä¸è¥¿ãæ¾ç»å¨è®²è¿°åè¡¨çæ¶åï¼æ¯ä¸æ¯ä¹åºç°è¿ä¸ªä¸è¥¿äºå¢ï¼æ¯çã宿å³çè¿ç§ç±»åç对象æ¯å¯è¿ä»£ç(iterable)ãå¨ä¸é¢ç讲解ä¸ï¼ä½ å°±ä¼çå°äºï¼è½å¤ç¨foræ¥è¯»åå
¶ä¸çå
容ã
##读æä»¶
å¨æä¸ªæä»¶å¤¹ä¸é¢å»ºç«äºä¸ä¸ªæä»¶ï¼åæ°ï¼130.txtï¼å¹¶ä¸å¨éé¢è¾å
¥äºå¦ä¸å
容ï¼
learn python
http://qiwsir.github.io
[email protected]
æ¤æä»¶ä¸å
±ä¸è¡ã
ä¸å¾æ¾ç¤ºäºè¿ä¸ªæä»¶çåå¨ä½ç½®ï¼

å¨ä¸é¢æªå¾ä¸ï¼æå¨å½åä½ç½®è¾å
¥äº`python`ï¼è¿å
¥å°äº¤äºæ¨¡å¼ãå¨è¿ä¸ªäº¤äºæ¨¡å¼ä¸ï¼è¿æ ·æä½ï¼
>>> f = open("130.txt") #æå¼å·²ç»åå¨çæä»¶
>>> for line in f:
... print line #Python 3: print(line)
...
learn python
http://qiwsir.github.io
[email protected]
æéåå¦è
注æï¼å¨é£ä¸ªç®å½éè¾å
¥äºå¯å¨Pythonäº¤äºæ¨¡å¼çå½ä»¤ï¼é£ä¹ï¼å¦ææç
§ä¸é¢çæ¹æ³`open("130.txt")`æå¼æä»¶ï¼å°±æå³çè¿ä¸ªæä»¶130.txtæ¯å¨å½åæä»¶å¤¹å
çãå¦æè¦æå¼å
¶å®æä»¶å¤¹å
çæä»¶ï¼è¯·ç¨ç¸å¯¹è·¯å¾æè
ç»å¯¹è·¯å¾æ¥è¡¨ç¤ºï¼ä»è让Pythonè½å¤æ¾å°é£ä¸ªæä»¶ã
å°æå¼çæä»¶ï¼èµå¼ç»åé`f`ï¼è¿æ ·ä¹å°±æ¯åé`f`è·å¯¹è±¡æä»¶130.txtç¨çº¿è¿èµ·æ¥äºï¼å¯¹è±¡å¼ç¨ï¼ï¼æ¬è´¨ä¸è·åé¢æè®²è¿°çå
¶å®å¯¹è±¡è¿è¡èµå¼æ¯ä¸æ ·çã
æ¥ä¸æ¥ï¼ç¨`for`æ¥è¯»åæä»¶ä¸çå
容ï¼å°±å¦å读åä¸ä¸ªåé¢å·²ç»å¦è¿çåºåå¯¹è±¡ä¸æ ·ï¼æè¯»å°çæä»¶ä¸çæ¯è¡ï¼èµå¼ç»åé`line`ãä¹å¯ä»¥ç解为ï¼ç¨`for`循ç¯ä¸è¡ä¸è¡å°è¯»åæä»¶å
å®¹ãæ¯æ¬¡æ«æä¸è¡ï¼éå°è¡ç»æç¬¦å·`\n`表示æ¬è¡ç»æï¼ç¶åæ¯ä¸ä¸è¡ã
仿å°çç»æçåºï¼æ¯ä¸è¡è·åé¢çå°çæä»¶å
容ä¸çæ¯ä¸è¡æ¯ä¸æ ·çãåªæ¯è¡ä¸è¡ä¹é´å¤äºä¸ç©ºè¡ï¼å颿¾ç¤ºæç« å
å®¹çæ¶åï¼æ²¡æè¿ä¸ªç©ºè¡ãæè®¸è¿æ å
³ç´§è¦ï¼ä½æ¯ï¼è¿è¦æ·±ç©¶ä¸ä¸ï¼æè½è±ç¶ã
å¨åæä¸ï¼æ¯è¡ç»æææ¬è¡ç»æç¬¦å·`\n`ï¼è¡¨ç¤ºæ¢è¡ã`print line`æè
`print(line)`é»è®¤æ
åµä¸ï¼æå°å®`line`ç对象ä¹åä¼å¢å ä¸ä¸ª`\n`ãè¿æ ·çæ¥ï¼å¨æ¯è¡æ«å°¾å°±æä¸¤ä¸ª`\n`ï¼å³ï¼`\n\n`ï¼äºæ¯å¨æå°ä¸å°±åºç°äºä¸ä¸ªç©ºè¡ã
>>> f = open('130.txt')
>>> for line in f:
... print line, #Python 3: print(line, end='')
...
learn python
http://qiwsir.github.io
[email protected]
å¦æè¯»è
宿äºä¸è¿°æä½ï¼ç´§æ¥çåä¸é¢çæä½ï¼
>>> for line2 in f: #å¨åé¢éè¿for循ç¯è¯»åäºæä»¶å
容ä¹åï¼å次读åï¼
... print line2 #ç¶åæå°ï¼ç»æå°±ä»ä¹ä¹æ¾ç¤ºï¼è¿æ¯ä»ä¹é®é¢ï¼
...
>>>
è¿ä¸æ¯ä»ä¹éè¯¯ï¼æ¯å 为å䏿¬¡å·²ç»è¯»åäºæä»¶å
容ï¼å¹¶ä¸å°äºæä»¶çæ«å°¾äºãåé夿ä½ï¼å°±æ¯ä»æ«å°¾å¼å§ç»§ç»è¯»äºãå½ç¶æ¾ç¤ºä¸äºä»ä¹ä¸è¥¿ï¼ä½æ¯Pythonå¹¶ä¸è®¤ä¸ºè¿æ¯é误ãåé¢ä¼å¯¹æ¤è¿è¡è®²è§£ã
å¨è¿éï¼å¦æè¦å次读åï¼é£å°±ä»æ°`f = open('130.txt')`ãæç¹éº»ç¦ï¼æå¥ç¥è¯å°ä¸å
è¶³ã
使ç¨Python 3ç读è
ï¼è¿éè¦æ³¨æäºï¼å¦æä½ å·²ç»æ§è¡äº`f = open('130.txt')`ï¼å°±æ¯å·²ç»å»ºç«äºä¸ä¸ªæä»¶å¯¹è±¡ï¼è¿æ¶åå¯ä»¥ä½¿ç¨`dir()`æ¥æ¥çè¿ä¸ªå¯¹è±¡çæ¹æ³å屿§äºã
>>> f = open("130.txt")
>>> dir(f)
['_CHUNK_SIZE', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_checkClosed', '_checkReadable', '_checkSeekable', '_checkWritable', '_finalizing', 'buffer', 'close', 'closed', 'detach', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'line_buffering', 'mode', 'name', 'newlines', 'read', 'readable', 'readline', 'readlines', 'seek', 'seekable', 'tell', 'truncate', 'writable', 'write', 'writelines']
ä¸ç®¡ä¸¤ä¸ªçæ¬çæ¾ç¤ºç»ææåªäºä¸åï¼å®ä»¬ç¸åçæ¯é½æ`__iter__`屿§ï¼æå³çå¨ä¸¤ä¸ªçæ¬ä¸ï¼æä»¶å¯¹è±¡é½æ¯å¯è¿ä»£çã
ç¹å«æéï¼å ä¸ºæææ¼ç¤ºçäº¤äºæ¨¡å¼æ¯å¨è¯¥æä»¶æå¨ç®å½å¯å¨çï¼æä»¥ï¼å°±ç¸å½äºè¿ä¸ªå®éªå®¤åæä»¶130.txtæ¯åä¸ä¸ªç®å½ï¼è¿æ¶åæä»¬æå¼æä»¶130.txtï¼å°±è®¤ä¸ºæ¯å¨æ¬ç®å½ä¸æå¼ï¼å¦ææä»¶ä¸æ¯å¨æ¬ç®å½ä¸ï¼éè¦åæ¸
æ¥è·¯å¾ã
æ¯å¦ï¼å¨ä¸ä¸çº§ç®å½ä¸ï¼`~/Documents/ITArticles/BasicPython`ï¼ï¼å妿è¿å
¥å°é£ä¸ªç®å½ä¸ï¼è¿è¡äº¤äºæ¨¡å¼ï¼ç¶åè¯å¾æå¼130.txtæä»¶ã

>>> f = open("130.txt")
Traceback (most recent call last):
File "