1.打开文件
open()函数
2.文件对象方法
close()
关闭文件
read(size=-1)
读取文件size个字符,不设置参数读取所有
f.read()
返回:
'最近在用python辅助玩跳一跳小游戏时,由于是苹果手机,研究了一下怎么装mac OS X 虚拟机,\n需要准备三个软件:\n1.OS X的镜像文件(iso cdr格式都行)\n2.vmware\n3.vmware破解工具unlocker\n具体步骤我都写在了我的博客中,包括了中间出现的一些问题等:\n以下是链接:\nwin10系统下利用VMware12 workstation pro安装Mac OS 虚拟机'
f.readline()
以写入模式打开,如果文件存在,在末未追加
f.seek(offset,from)
在文件中移动指针,从from (0代表文件其实位置,1代表当前位置,2代表文件末尾)便宜offset个字节
读取文件内容:
for each in f:
print(each)
返回:
最近在用python辅助玩跳一跳小游戏时,由于是苹果手机,研究了一下怎么装mac OS X 虚拟机,
需要准备三个软件:
1.OS X的镜像文件(iso cdr格式都行)
2.vmware
3.vmware破解工具unlocker
具体步骤我都写在了我的博客中,包括了中间出现的一些问题等:
以下是链接:
win10系统下利用VMware12 workstation pro安装Mac OS 虚拟机
f.write()和 f.writelines(seq)
确保之间打开模式是‘a’或者‘w’
向文件中写入字符串
向文件中写入可迭代对象序列
习题及答案
28讲:
0.下面只有一种方式不能打开文件,请问是哪一种,为什么?
f=open('E:/test.txt','w')
f=open('E:\test.txt','w')
f=open('E://test.txt','w')
f=open('E:\\test.txt','w')
f=open(‘E:\test.txt’,’w’)无法打开文件,因为windows路径名中既可以接受/也可以接受\,不过如果使用反斜线\作为路径名分隔符的话,要用双反斜杠进行转义,否则python会将其进行转义,例如看成一个换行符(\n)
1.打开一个文件我们使用open函数,通过设置文件的打开模式,决定打开文件的具有哪些性质,请问默认的打开模式是什么呢?
默认打开模式是‘r’,即可读,文本的模式打开
2.请问>>>open(‘E:\test.bin’,’xb’)怎么样的模式打开呢?
以可写入以及二进制模式打开的文件
3.尽管python有所谓的垃圾回收机制,但对于打开了的文件,再不需要的时候我们仍需使用f.close将对象关闭,为什么呢?
python拥有垃圾收集机制,会对文件对象的引用计数将至0的时候自动关闭文件,所以在python编辑里,不会造成内存泄露的危险
但是python会缓存你写入的数据,如果中间段店,缓存的数据就不会写入文本了,
4.如何将一个文件对象中的数据存放进列表中?
list(file)
5.如何迭代打印出文件对象的每一行数据?
for each in f:
print(each)
6.文件对象的内置方法f.read(size=-1)作用是读取文件对象内容,size参数可选,那如果设置了size=10,例如f.read(10),将返回什么内容?
将返回从文件指针开始的连续10个字符
7.如何获取指针文件指针当前位置?
f.tell()
8.尝试将文件(openme.mp3)打印到屏幕上
f=open('openme.mp3')
for each in f:
print(each_line,end='')
f.close()
9.编写代码,将上一题中的文件保存为新文件
f1=open('openme.mp3')
f2=open('openme.txt','r')
f2.write(f1.read())
f1.close()
f2.close()
第29讲
0.编写一个程序,接受用户输入并保存为新文档
def write_save(filename):
f=open(filename,'w')
print(':w表示退出')
while 1:
word=input("请输入你想说的话:")
if word!=':w':
f.write('%s\n'%word)
else:
break
f.close()
filename=input('请输入文件名:')
write_save(filename)
1.编写一个程序比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置
def compare(filename1,filename2):
f1=open(filename1)
f2=open(filename2)
row=1
differ=[]
for line1 in f1:
line2=f2.readline()
row+=1
if line1 !=line2
differ.append(row)#第几行不一样
f1.close()
f2.close()
return differ
file1=input("请输入文件1的名字:")
file2=input("请输入文件2的名字:")
compare(file1,file2)
if len(differ)==0:
print("两个文件没有区别")
else
print("共有%d次不同之处"%len(differ))
for each in differ:
print('第%d行不一样'%each)
2.编写一个小程序,当用户输入文件名和行数(n)之后,将该文件打印到屏幕上
def print_row(filename,row_num):
f=open(filename)
for each in f.readlines()[:row_num]:
print(each)
filename=input('请输入文件名:')
print_row(filename,5)
#*或者*
def print_row(filename,row_num):
f=open(filename)
for i in range(int(row_num)):
print(f.readline(),end='')
f.close()
filename=input('请输入文件名:')
print_row(filename,5)