两个使用Python脚本操作文件的小示例分享
1这是一个创建一个文件,并在控制台写入行到新建的文件中.
#!/usr/bin/envpython
'makeTextFile.py--createtextfile'
importos
ls=os.linesep
#getfilename
whileTrue:
fname=raw_input('Enterfilename:')
ifos.path.exists(fname):
print"ERROR:'%s'alreadyexists"%fname
else:
break
#getfilecontent(text)lines
all=[]
print"\nEnterlines('.'byitselftoquit).\n"
#loopuntiluserterminatesinput
whileTrue:
entry=raw_input('>')
ifentry=='.':
break
else:
all.append(entry)
#writelinestofilewithproperline-ending
fobj=open(fname,'w')
fobj.writelines(['%s%s'%(x,ls)forxinall])
fobj.close()
print'DONE!'
os.linesep表示行结尾标志,用本地变量名ls代替它节省了时间,并减少了消耗系统资源.
用raw_input()读入文件名
用列表all[]来保存每一行文本(它们暂时在内存中).
最后创建文件后,用writelines()把内存中的行写入打开的文件中.
#!/usr/bin/envpython
'readTextFile.py--readanddisplaytextfile'
#getfilename
fname=raw_input('Enterfilename:')
print
#attempttoopenfileforreading
try:
fobj=open(fname,'r')
exceptIOError,e:
print"***fileopenerror:",e
else:
#displaycontentstothescreen
foreachLineinfobj:
printeachLine,
fobj.close()
(1)注意:由于我们没有移除代表每行结束的行结束符,我们不得不抵制print语句自动生成的行结束符--通过在print语句的最后加一个逗号可以达到这一目的
print后没有逗号是这种效果:
(2)try-except-else是一个新出現的语句,其中except子句是我们处理错误的地方.
注:两个程序在执行前,需要给文件增加可执行权限.
$chmoda+xfilename