专题一:文件读写

python学习笔记:2011/9/23《pyton基础教程》和《python核心教程》交叉阅读。


专题一:文件和输入输出



1:打印语句可以用 % 来替换语句。例如

print "%s is number of %d" % ("Python", 1)

还可以重定向输出:(相对路径的问题)
logfile = open("D:\WorkSpace\TextToHTML\src\log.txt" ,'a') print >> logfile, "what is that?"


2:打开文件的模式

r,w,a最常用,分别表示读、写、追加。其中r和w必须在文件存在的情况下用。而w模式打开的文件
如果已经存在就先清空里面的内容。

3:其它的几种读的方法

a:readline()表示的是读取一行
logfile = open("D:\WorkSpace\TextToHTML\src\log.txt" ,'r') print logfile.readline()

b:read(n)方法,可以指定读多少字节
print logfile.read(2)

c:read()方法,可以把文件全部都读进来
print logfile.read()

d:readlines()方法,按照行,把每一行都读进来
logfile = open("D:\WorkSpace\TextToHTML\src\log.txt" ,'r') alllines = logfile.readlines() logfile.close() for eachline in alllines:

print eachline
但是现在对于文件对象本身也可以迭代,非常简单的如下:
logfile = open("D:\WorkSpace\TextToHTML\src\log.txt" ,'r') for eachline in logfile: print eachline logfile.close()

4:相对应的写方法

5:print语句会在输出内容末尾自动的加上一个换行符,在语句后面加上一个逗号就勊避免这个行为

所以,省略逗号后,显示出来的文本都是两个空行,一个是输入自带的,另外一个是print语句自动添加的。

6:小例子

a:对每一个字符进行循环

logfile = open("D:\WorkSpace\TextToHTML\src\log.txt" ,'r') char = logfile.read(1) while char: print char char = logfile.read(1) logfile.close()


b:可以优化为下面的代码

logfile = open("D:\WorkSpace\TextToHTML\src\log.txt" ,'r') while True: char = logfile.read(1) if not char:break print char logfile.close()

c:读行

logfile = open("D:\WorkSpace\TextToHTML\src\log.txt" ,'r') while True: line = logfile.readline() if not line:break print line, logfile.close()

7:对于文件操作的整个大例子

''' Created on 2011-9-23 @author: xgzhao ''' import os for temdir in ('/tem', r'C:\tem'): if os.path.isdir(temdir): break else: print 'no tempary directory available' temdir = '' if temdir: #每次用一个目录的时候一定要调用chdir方法,就像在mysql里面使用数据库一样。 os.chdir(temdir) #得到当前目录 cwd = os.getcwd() print "****current directory" print cwd print "****creating example directory" #在当前目录下创建目录 os.makedirs('example') #使用example目录 os.chdir('example') cwd = os.getcwd() print "***new working directory" print cwd print "***original directory listing" #列出当前目录下的文件 print os.listdir(cwd) print "****creating test file" #创建文件,并写入两行 fobj = open("test", "w") fobj.write("foo\n") fobj.write("bar\n") fobj.close() print "***updated directory listing" print os.listdir(cwd) print "***renaming test to filetest.txt" #重命名文件 os.rename('test', 'filetest.txt') print "***updated directory listing" print os.listdir(cwd) #把路径和目录下面的文件结合起来,就是绝对路径 path = os.path.join(cwd, os.listdir(cwd)[0]) print "***full file pathname" print path print "***(pathname, basename)==" #把路径和文件分开 print os.path.split(path) print "****(filename, extension)==" #把文件的名字和扩展分开 print os.path.splitext(os.path.basename(path)) print "****displaying file contents" fobj = open(path) for eachline in fobj: print eachline fobj.close() print "***delete testing file" #把当前目录下的文件删除 os.remove(path) print "***updating directory path" print os.listdir(cwd) os.chdir(os.pardir) print "***delete test directory" #删除文件夹 os.rmdir('example') print "***done" 输出结果是:****current directory C:\tem ****creating example directory ***new working directory C:\tem\example ***original directory listing [] ****creating test file ***updated directory listing ['test'] ***renaming test to filetest.txt ***updated directory listing ['filetest.txt'] ***full file pathname C:\tem\example\filetest.txt ***(pathname, basename)== ('C:\\tem\\example', 'filetest.txt') ****(filename, extension)== ('filetest', '.txt') ****displaying file contents foo bar ***delete testing file ***updating directory path [] ***delete test directory ***done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值