瀛︿範(fàn)涓闂ㄨ璦錛屾垜鎬繪槸鍠滄浠庢枃浠跺紑濮嬨傛枃鏈枃浠剁殑璇誨啓鎿嶄綔鏄垜姣旇緝鍦ㄦ剰鐨勫熀鏈姛鑳姐?鍦ㄨ繖鏂歸潰錛孞ava璇█鍔熻兘姣旇緝寮哄ぇ錛岀敤鍒扮殑璁捐妯″紡涔熼潪甯稿銆傚彧鏄嬌鐢ㄨ搗鏉ュお榪囩箒鐞愩?鑰孭ython鍦ㄨ繖鏂歸潰琛ㄧ幇闈炲父濂斤紝綆媧佷笉澶卞姛鑳斤紝寮哄ぇ涓嶅け鎬ц兘錛岄氫織涓嶅け浼橀泤錛屽煎緱縐拌禐銆?/p>
鎴戜滑浠庝竴涓渶綆鍗曠殑寮濮嬨?/p>
with open('/etc/resolv.conf') as f:
print(f.read())
榪欓噷鏈夌敤鍒?a style="margin: 0px; padding: 0px; border: 0px; font-family: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; vertical-align: baseline; color: #751590; -webkit-transition: color 0.3s; white-space: pre-wrap; word-wrap: break-word;">with璇硶鏉ュ叧闂枃浠跺彞鏌勩?/p>
棣栧厛鏉ヤ簡(jiǎn)瑙d笅open()鍐呯疆鍑芥暟銆?/p>
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Open file and return a corresponding file object. If the file cannot be opened, an OSError is raised.
open()鐨勫弬鏁頒紬澶氾紝閫氬父闇瑕佸叧娉ㄧ殑鏄痬ode/encoding/errors/newline絳夈?/p>
(1) 璇誨彇鏂囦歡蹇呴』浼犲叆瀛楃緙栫爜encoding
(2) 鐢ㄥ畬鐨勬祦闇瑕佸叧闂紝鎺ㄨ崘浣跨敤with鎿嶄綔
(3) 鎹㈣絎﹀敖鍙兘鐨勪嬌鐢║NIX鏍煎紡(\n)錛屽敖綆ython鍙互鏅鴻兘杞崲
(4) 濡傛灉鍙互鐨勮瘽灝藉彲鑳界殑浣跨敤utf-8緙栫爜鏉ュ鐞嗛潪ascii瀛楃錛屼笉瑕佷緷璧栨搷浣滅郴緇熺殑緙栫爜
灝忚創(chuàng)澹?/p>
澶氫釜鏂囦歡鍚屾椂鎿嶄綔鍙嬌鐢╳ith鐨勮娉曪細(xì)
with open('/etc/hosts','r') as f,open('/tmp/hosts','w') as t:
//do something
鎴栬?/p>
with f=open('/etc/hosts'),t=open('/tmp/hosts','w'):
// do something
鏂囦歡瀵硅薄鎻忚堪鐨勬槸涓縐?#8220;嫻?#8221;鎿嶄綔錛岄氬父鏀寔read()鎴栬厀rite()鏂規(guī)硶銆?榪欓噷鐨勬枃浠跺璞℃槸涓縐嶆蹇典笂鐨?#8220;鏂囦歡瀵硅薄”錛岄櫎浜?jiǎn)甯歌鐨勭湡鏄殑纾佺洏鏂囦挥灱寴q樺彲浠ユ槸 鏍囧噯杈撳叆杈撳嚭鏂囦歡(stdin/stdout/stderr)錛屽唴瀛樼紦鍐插尯(StringIO,cStringIO)錛?socket錛宲ipes絳夈?/p>
榪欏湪io妯″潡涓湁鍏蜂綋鐨勬弿榪般?/p>
鏂囨湰鎿嶄綔鍜屼簩榪涘埗鎿嶄綔鏈変竴浜涘尯鍒傚垎鍒粙緇嶃?/p>
濡傛灉mode涓寘鍚玹錛堥粯璁わ級(jí)錛岄偅涔堣繑鍥炵殑嫻佹槸涓涓函鏂囨湰鎿嶄綔銆?/p>
read() 鏄鍙栨枃鏈殑鏈綆鍗曠殑鏂規(guī)硶銆傝繑鍥炵殑鏄瓧絎︿覆褰㈠紡鐨勭粨鏋滐紙鍜屽弬鏁癳ncoding鏈夊叧錛夈?/p>
read(n)
Read and return at most n characters from the stream as a single str. If n is negative or None, reads until EOF.
鍦ㄥ緢澶氬畨瑁呰剼鏈腑鏈夛細(xì)
readme=open('./README.md').read()
綾諱技鐨勭敤娉曘傝繖鍦ㄤ竴涓揩閫熺粨鏉熺殑紼嬪簭涓棶棰樹(shù)笉澶с傚湪姝e紡鐨勬湇鍔′腑搴旇闅忔椂鍏抽棴鏂囦歡鍙ユ焺閲婃斁璧勬簮銆?/p>
灝忚創(chuàng)澹細(xì)
濡傛灉宸茬粡璇誨彇鍒版枃浠舵湯灝撅紝read()鍒欒繑鍥炵┖瀛楃涓?'銆?
濡傛灉瑕佽鍙栦竴琛岋紝浣跨敤readline()鏂規(guī)硶銆?/p>
readline(limit=-1)
Read until newline or EOF and return a single str. If the stream is already at EOF, an empty string is returned. If limit is specified, at most limit characters will be read.
璇誨彇涓琛屾剰鍛崇潃鍜岃緇撴潫絎︽湁鍏籌紝榪欎釜鏈夌偣澶嶆潅銆?/p>
璇誨彇澶氳錛屼嬌鐢╮eadlines()鏂規(guī)硶銆傝繖灝嗚繑鍥炰竴涓瓧絎︿覆鍒楄〃銆俽eadlines()涔熷彲浠ラ檺鍒舵渶澶氳鍙栧灝戜釜瀛楃銆?/p>
灝忚創(chuàng)澹細(xì)
readline(limit=-1)鍜宺eadlines(limit=-1)瀵筶imit鐨勬弿榪頒笉澶竴鑷淬?
readline(limit=-1)鎻忚堪鐨勬槸璇誨彇涓琛岋紝鏈澶氫笉瓚呰繃limit涓瓧絎︼紙涓嶆槸瀛楄妭錛夛紝鍥犳鏈夊彲鑳界粨鏋滀笉鏄煇涓琛岀殑緇撴潫銆?
readlines(limit=-1)鎻忚堪鐨勬槸璇誨彇瀛楃錛岀洿鍒發(fā)imit涓瓧絎︽墍鍦ㄧ殑琛岀粨鏉熴備篃灝辨槸榪斿洖鐨勭粨鏋滀竴瀹氭槸鏌愪竴琛岀殑緇撴潫(闄ら潪EOF)銆?
渚嬪錛?br />>>> open('/tmp/x1','w').write('Python鐪熸槸涓涓ソ鍚屽\n鍙槸闄愬埗琚壊瑁傛垚涓や釜鐗堟湰浜?jiǎn)\n鎴戞敮鎸乸ython3.x')
40
>>> open('/tmp/x1','r').readline(10)
'Python鐪熸槸涓涓?
>>> open('/tmp/x1','r').readlines(10)
['Python鐪熸槸涓涓ソ鍚屽\n']
readlines(limit)鏄竴涓毦浠ョ悊瑙g殑閫昏緫銆傚鏋滃彲浠ヤ笉瑕侀殢渚夸紶杈撲竴涓弬鏁般?a style="margin: 0px; padding: 0px; border: 0px; font-family: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; vertical-align: baseline; color: #751590; -webkit-transition: color 0.3s; white-space: pre-wrap; word-wrap: break-word;">鍙傝冭繖閲?/a>銆?/p>
鍐欏叆鏂囨湰鍙嬌鐢╳rite(s)鏂規(guī)硶錛?/p>
write(s) Write the string s to the stream and return the number of characters written.
鍐欏叆鐨勬槸瀛楃涓詫紝鑰屼笉鏄瓧鑺傘傚鏋滆鍐欏叆澶氳瀛楃涓詫紝鍙互浣跨敤writelines(lines)鏂規(guī)硶銆?/p>
灝忚創(chuàng)澹細(xì)
write(s)鍜寃ritelines(lines)涓嶄細(xì)灝嗚緇撴潫絎﹀啓鍏ユ枃浠舵祦銆傚洜姝ら渶瑕佹墜鍔ㄥ啓鍏ヨ緇撴潫絎︺?
浜岃繘鍒舵祦鍜屾枃鏈祦綾諱技錛屽彧鏄簩榪涘埗嫻佹病鏈塭ncoding涓璇淬傛墦寮浜岃繘鍒舵祦闇瑕佷紶鍏ュ弬鏁癿ode涓寘鍚?#8217;b’銆?/p>
渚嬪錛?/p>
>>> type(open('/etc/hosts','rb').read())
<class 'bytes'>
瀵規(guī)瘮鏂囨湰嫻侊紝浜岃繘鍒舵祦鏈変竴浜涘皬鐨勫樊鍒細(xì)
闄や簡(jiǎn)read/write鏂規(guī)硶錛屾枃浠跺璞¤繕鏈変竴浜涘叾瀹冪殑鍐呯疆鏂規(guī)硶錛?/p>
灝嗗湪I/O浠嬬粛鏇村鐨勭煡璇嗐?/p>