本文主要内容
1、创建文件
2、读取文件
os模块
- os.linesep变量
ls = os.linesep 使用局部变量替换模块变量
对于os.linesep使用,需要解释器做两次查询
(1)查找os模块
(2)在模块中查找linesep变量,是一个全局变量,查找时需要消耗很多资源;若是频繁使用的
属性,建议为属性取一个本地变量名称;查找时先查询本地变量,再去查找全局变量。
- os.path.exists( )
os.path.exists( ) 是os模块中一个有用的函数,帮助确认文件是否存在;若不存在,函数会返回False,继续执行while循环。
输入raw_input內建函数
raw_input()內建函数,接受一个“提示字符串”参数,作为对用户的提示信息
列表解析
fobj.writelines(['%s%s' % (x, ls) for x in all])
将内存中的内容逐行写入文件。
- '%s%s'
根据程序运行平台添加一个合适的行结束符,为每行添加结束符。- (x,ls)
每一行及其行结束符。- writelines()
文件对象的方法,接收包含行结束符的结果列表,并将其写入文件。
try-except-else语句
- try 监测错误的代码
except 子句是我们处理错误的地方- IOError 类型
检验open() 是否失败- else 子句在 try 代码块运行无误时执行。
行结束符 ‘,’
print语句自动生成的行结束符,在print语句的最后加一个逗号‘,’可以达到行结束符的目的。
#创建新的文件的代码:
import os
ls = os.linesep #为属性取新的别名
fname = raw_input('Enter filename:') #提示用户输入一个文件名
while True:
if os.path.exists(fname): #确认文件的os函数
print "error: '%s' already exists " % fname
else:
break
all = [] #初始化列表,来保存每行文本
print "\nEnter lines ('.' by itself to quit).\n" #打印出提示信息
while True:
entry = raw_input('> ')
if entry == '.': #判断输入文本的结束标志
break #终止、跳出循环
else:
all.append(entry) #添加新的一行,并将文本保存到内存中
fobj = open(fname, 'w') #打开新建的文件,写模式
fobj.writelines(['%s%s' % (x, ls) for x in all]) #将内存中的内容写到文件中
fobj.close()
print 'DONE!'
读取文件中的内容:
fname = raw_input('Enter filename:')
print
try:
fobj = open(fname, 'r') #打开文件,进入读模式
except IOError, e:
print "*** file open error:", e
else: #监测处理代码块
for eachLine in fobj:
print eachLine, #逐行输出(‘,’为行结束符)
fobj.close()