创建文件与读取文件

本文主要内容
1、创建文件
2、读取文件


os模块

  1. os.linesep变量
    ls = os.linesep 使用局部变量替换模块变量
    对于os.linesep使用,需要解释器做两次查询
    (1)查找os模块
    (2)在模块中查找linesep变量,是一个全局变量,查找时需要消耗很多资源;若是频繁使用的
    属性,建议为属性取一个本地变量名称;查找时先查询本地变量,再去查找全局变量。
  1. os.path.exists( )
    os.path.exists( ) 是os模块中一个有用的函数,帮助确认文件是否存在;若不存在,函数会返回False,继续执行while循环。

输入raw_input內建函数

raw_input()內建函数,接受一个“提示字符串”参数,作为对用户的提示信息

列表解析

fobj.writelines(['%s%s' % (x, ls) for x in all])
将内存中的内容逐行写入文件。

  1. '%s%s'
    根据程序运行平台添加一个合适的行结束符,为每行添加结束符。
  2. (x,ls)
    每一行及其行结束符。
  3. writelines()
    文件对象的方法,接收包含行结束符的结果列表,并将其写入文件。

try-except-else语句

  1. try 监测错误的代码
    except 子句是我们处理错误的地方
  2. IOError 类型
    检验open() 是否失败
  3. 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()

你可能感兴趣的:(创建文件与读取文件)