pythonåæ件
代ç å¦ä¸ å¤å¶ä»£ç
object_id_list=[1, 3, 88, 99]
f=open(âmylistâ, âwâ)
for id in object_id_list:
f.writelines(str(id))
f.close() #åªæè¾å
¥è¿ä¸å¥ä¹åæä¼çæ£åå
¥å°æ件ä¸
cat mylist
138899% # æåæä¸ä¸ª%表示没ææ¢è¡
>>> object_id_list=[1, 3, 88, 99]
>>> f=open(âmylistâ, âwâ)
>>> for id in object_id_list:
⦠f.writelines(str(id) + âï¼¼nâ)
â¦
>>> f.close()
➜ ~ cat mylist
1
3
88
99
ä¾å2
代ç å¦ä¸ å¤å¶ä»£ç
def processFile(inputFile, outputFile): #å®ä¹ä¸ä¸ªå½æ°
fin = open(inputFile, 'r') #以读çæ¹å¼æå¼æ件
fout = open(outputFile, 'w') #以åå¾æ¹å¼æå¼æ件
for eachLine in fin: #读åæ件çæ¯ä¸è¡
line = eachLine.strip().decode('utf-8', 'ignore') #å»é¤æ¯è¡çé¦ä½ç©ºæ ¼ï¼å¹¶ä¸å°æ件ç¼ç 转æ¢æUnicodeç¼ç
outStr = line #æ没对读å
¥çææ¬è¿è¡å¤çï¼åªæ¯ç´æ¥å°å
¶è¾åºå°æ件
fout.write(outStr.strip().encode('utf-8') + 'n') #å»é¤é¦ä½çç©ºæ ¼ï¼å¹¶è½¬åå°utf-8ç¼ç ï¼ç¶åè¾åº
fin.close() #å
³éæ件
fout.close()
processFile('myinputFile.txt', 'myoutputFile.txt') #è°ç¨è¯¥å½æ°å¯¹æ件è¿è¡å¤ç
注æï¼1ãç±äºPythonè½å¤å¾æ¹ä¾¿ç对Unicodeç¼ç è¿è¡å¤çï¼æ以æ好å
转æ¢æUnicodeç¼ç¨è¿è¡å¤çï¼
2ãç±äºè¯»å
¥ææ¬åè¿è¡å¤çï¼å¯è½ä¼å¨ææ¬æ«å°¾å ä¸ç©ºæ ¼ï¼æ以åå
¥æ件çæ¶åï¼æ好å
ç¨strip()å½æ°æ¸
é¤ä¸ä¸é¦ä½çç©ºæ ¼ï¼
æ使ç¨çæ¯Linuxç¯å¢ï¼ç¨åºåå®ä¹åï¼è¾å
¥ï¼python test.py å°±è½æ§è¡è¯¥ç¨åºäºã
读æ件
读ææ¬æ件
input = open('data', 'r')
#第äºä¸ªåæ°é»è®¤ä¸ºr
input = open('data')
读äºè¿å¶æ件
input = open('data', 'rb')
读åææå
容
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
读åºå®åè
file_object = open('abinfile', 'rb')
try:
while True:
chunk = file_object.read(100)
if not chunk:
break
do_something_with(chunk)
finally:
file_object.close( )
读æ¯è¡
list_of_all_the_lines = file_object.readlines( )
å¦ææ件æ¯ææ¬æ件ï¼è¿å¯ä»¥ç´æ¥éåæ件对象è·åæ¯è¡ï¼
for line in file_object:
process line
3.åæ件
åææ¬æ件
output = open('data', 'w')
åäºè¿å¶æ件
output = open('data', 'wb')
追å åæ件
output = open('data', 'w+')
åæ°æ®
file_object = open('thefile.txt', 'w')
file_object.write(all_the_text)
file_object.close( )
åå
¥å¤è¡
file_object.writelines(list_of_text_strings)
注æï¼è°ç¨writelinesåå
¥å¤è¡å¨æ§è½ä¸ä¼æ¯ä½¿ç¨writeä¸æ¬¡æ§åå
¥è¦é«ã
å¨å¤çæ¥å¿æ件çæ¶åï¼å¸¸å¸¸ä¼éå°è¿æ ·çæ
åµï¼æ¥å¿æ件巨大ï¼ä¸å¯è½ä¸æ¬¡æ§ææ´ä¸ªæ件读å
¥å°å
åä¸è¿è¡å¤çï¼ä¾å¦éè¦å¨ä¸å°ç©çå
å为 2GB çæºå¨ä¸å¤çä¸ä¸ª 2GB çæ¥å¿æ件ï¼æ们å¯è½å¸ææ¯æ¬¡åªå¤çå
¶ä¸ 200MB çå
容ã
å¨ Python ä¸ï¼å
ç½®ç File 对象ç´æ¥æä¾äºä¸ä¸ª readlines(sizehint) å½æ°æ¥å®æè¿æ ·çäºæ
ã以ä¸é¢ç代ç 为ä¾ï¼
file = open('test.log', 'r')sizehint = 209715200 # 200Mposition = 0lines = file.readlines(sizehint)while not file.tell() - position < 0: position = file.tell() lines = file.readlines(sizehint)
æ¯æ¬¡è°ç¨ readlines(sizehint) å½æ°ï¼ä¼è¿å大约 200MB çæ°æ®ï¼èä¸æè¿åçå¿
ç¶é½æ¯å®æ´çè¡æ°æ®ï¼å¤§å¤æ°æ
åµä¸ï¼è¿åçæ°æ®çåèæ°ä¼ç¨å¾®æ¯ sizehint æå®çå¼å¤§ä¸ç¹ï¼é¤æåä¸æ¬¡è°ç¨ readlines(sizehint) å½æ°çæ¶åï¼ãé常æ
åµä¸ï¼Python ä¼èªå¨å°ç¨æ·æå®ç sizehint çå¼è°æ´æå
é¨ç¼å大å°çæ´æ°åã
fileå¨pythonæ¯ä¸ä¸ªç¹æ®çç±»åï¼å®ç¨äºå¨pythonç¨åºä¸å¯¹å¤é¨çæ件è¿è¡æä½ãå¨pythonä¸ä¸åé½æ¯å¯¹è±¡ï¼fileä¹ä¸ä¾å¤ï¼fileæfileçæ¹æ³åå±æ§ãä¸é¢å
æ¥çå¦ä½å建ä¸ä¸ªfile对象ï¼
file(name[, mode[, buffering]])
file()å½æ°ç¨äºå建ä¸ä¸ªfile对象ï¼å®æä¸ä¸ªå«åå«open()ï¼å¯è½æ´å½¢è±¡ä¸äºï¼å®ä»¬æ¯å
ç½®å½æ°ãæ¥ççå®çåæ°ãå®åæ°é½æ¯ä»¥å符串çå½¢å¼ä¼ éçãnameæ¯æ件çååã
modeæ¯æå¼ç模å¼ï¼å¯éçå¼ä¸ºr w a Uï¼åå«ä»£è¡¨è¯»ï¼é»è®¤ï¼ å æ·»å æ¯æåç§æ¢è¡ç¬¦ç模å¼ãç¨wæa模å¼æå¼æ件çè¯ï¼å¦ææ件ä¸åå¨ï¼é£ä¹å°±èªå¨å建ãæ¤å¤ï¼ç¨w模å¼æå¼ä¸ä¸ªå·²ç»åå¨çæ件æ¶ï¼åææ件çå
容ä¼è¢«æ¸
空ï¼å 为ä¸å¼å§æ件çæä½çæ è®°æ¯å¨æ件çå¼å¤´çï¼è¿æ¶åè¿è¡åæä½ï¼æ çä¼æåæçå
容ç»æ¹æãç±äºåå²çåå ï¼æ¢è¡ç¬¦å¨ä¸åçç³»ç»ä¸æä¸å模å¼ï¼æ¯å¦å¨ unixä¸æ¯ä¸ä¸ªnï¼èå¨windowsä¸æ¯ârnâï¼ç¨U模å¼æå¼æ件ï¼å°±æ¯æ¯æææçæ¢è¡æ¨¡å¼ï¼ä¹å°±è¯´ârâ 'n' 'rn'é½å¯è¡¨ç¤ºæ¢è¡ï¼ä¼æä¸ä¸ªtupleç¨æ¥åè´®è¿ä¸ªæ件ä¸ç¨å°è¿çæ¢è¡ç¬¦ãä¸è¿ï¼è½è¯´æ¢è¡æå¤ç§æ¨¡å¼ï¼è¯»å°pythonä¸ç»ä¸ç¨n代æ¿ãå¨æ¨¡å¼å符çåé¢ï¼è¿å¯ä»¥å ä¸+ b tè¿ä¸¤ç§æ è¯ï¼åå«è¡¨ç¤ºå¯ä»¥å¯¹æ件åæ¶è¿è¡è¯»åæä½åç¨äºè¿å¶æ¨¡å¼ãææ¬æ¨¡å¼ï¼é»è®¤ï¼æå¼æ件ã
bufferingå¦æ为0表示ä¸è¿è¡ç¼å²;å¦æ为1表示è¿è¡âè¡ç¼å²â;å¦ææ¯ä¸ä¸ªå¤§äº1çæ°è¡¨ç¤ºç¼å²åºç大å°ï¼åºè¯¥æ¯ä»¥åè为åä½çã
file对象æèªå·±çå±æ§åæ¹æ³ãå
æ¥ççfileçå±æ§ã
closed #æ è®°æ件æ¯å¦å·²ç»å
³éï¼ç±close()æ¹å
encoding #æ件ç¼ç
mode #æå¼æ¨¡å¼
name #æ件å
newlines #æ件ä¸ç¨å°çæ¢è¡æ¨¡å¼ï¼æ¯ä¸ä¸ªtuple
softspace #booleanåï¼ä¸è¬ä¸º0ï¼æ®è¯´ç¨äºprint
fileç读åæ¹æ³ï¼
F.read([size]) #size为读åçé¿åº¦ï¼ä»¥byte为åä½
F.readline([size])
#读ä¸è¡ï¼å¦æå®ä¹äºsizeï¼æå¯è½è¿åçåªæ¯ä¸è¡çä¸é¨å
F.readlines([size])
#ææ件æ¯ä¸è¡ä½ä¸ºä¸ä¸ªlistçä¸ä¸ªæåï¼å¹¶è¿åè¿ä¸ªlistãå
¶å®å®çå
é¨æ¯éè¿å¾ªç¯è°ç¨readline()æ¥å®ç°çãå¦ææä¾sizeåæ°ï¼sizeæ¯è¡¨ç¤ºè¯»åå
容çæ»é¿ï¼ä¹å°±æ¯è¯´å¯è½åªè¯»å°æ件çä¸é¨åã
F.write(str)
#æstråå°æ件ä¸ï¼write()并ä¸ä¼å¨stråå ä¸ä¸ä¸ªæ¢è¡ç¬¦
F.writelines(seq)
#æseqçå
容å
¨é¨åå°æ件ä¸ãè¿ä¸ªå½æ°ä¹åªæ¯å¿ å®å°åå
¥ï¼ä¸ä¼å¨æ¯è¡åé¢å ä¸ä»»ä½ä¸è¥¿ã
fileçå
¶ä»æ¹æ³ï¼
F.close()
#å
³éæ件ãpythonä¼å¨ä¸ä¸ªæ件ä¸ç¨åèªå¨å
³éæ件ï¼ä¸è¿è¿ä¸åè½æ²¡æä¿è¯ï¼æ好è¿æ¯å
»æèªå·±å
³éçä¹ æ¯ãå¦æä¸ä¸ªæ件å¨å
³éåè¿å¯¹å
¶è¿è¡æä½ä¼äº§çValueError
F.flush()
#æç¼å²åºçå
容åå
¥ç¡¬ç
F.fileno()
#è¿åä¸ä¸ªé¿æ´åçâæ件æ ç¾â
F.isatty()
#æ件æ¯å¦æ¯ä¸ä¸ªç»ç«¯è®¾å¤æ件ï¼unixç³»ç»ä¸çï¼
F.tell()
#è¿åæ件æä½æ è®°çå½åä½ç½®ï¼ä»¥æ件çå¼å¤´ä¸ºåç¹
F.next()
#è¿åä¸ä¸è¡ï¼å¹¶å°æ件æä½æ è®°ä½ç§»å°ä¸ä¸è¡ãæä¸ä¸ªfileç¨äºfor ... in fileè¿æ ·çè¯å¥æ¶ï¼å°±æ¯è°ç¨next()å½æ°æ¥å®ç°éåçã
F.seek(offset[,whence])
#å°æ件ææä½æ 记移å°offsetçä½ç½®ãè¿ä¸ªoffsetä¸è¬æ¯ç¸å¯¹äºæ件çå¼å¤´æ¥è®¡ç®çï¼ä¸è¬ä¸ºæ£æ°ãä½å¦ææä¾äºwhenceåæ°å°±ä¸ä¸å®äºï¼whenceå¯ä»¥ä¸º0表示ä»å¤´å¼å§è®¡ç®ï¼1表示以å½åä½ç½®ä¸ºåç¹è®¡ç®ã2表示以æ件æ«å°¾ä¸ºåç¹è¿è¡è®¡ç®ãéè¦æ³¨æï¼å¦ææ件以aæa+ç模å¼æå¼ï¼æ¯æ¬¡è¿è¡åæä½æ¶ï¼æ件æä½æ è®°ä¼èªå¨è¿åå°æ件æ«å°¾ã
F.truncate([size])
#ææ件è£æè§å®ç大å°ï¼é»è®¤çæ¯è£å°å½åæ件æä½æ è®°çä½ç½®ãå¦æsizeæ¯æ件ç大å°è¿è¦å¤§ï¼ä¾æ®ç³»ç»çä¸åå¯è½æ¯ä¸æ¹åæ件ï¼ä¹å¯è½æ¯ç¨0ææ件补å°ç¸åºç大å°ï¼ä¹å¯è½æ¯ä»¥ä¸äºéæºçå
容å ä¸å»ã
温馨提示:答案为网友推荐,仅供参考