学习内容:文件
打开模式 | 执行操作 |
---|---|
r | 以只读模式打开文件 |
w | 以写入模式打开文件,会覆盖已存在的文件 |
x | 如果文件已存在,使用此模式打开会引发异常 |
a | 以写入模式打开,如果文件存在,则在末尾追加写入 |
b | 以二进制模式打开 |
t | 以文本模式打开 |
+ | 可读写模式 |
U | 支持通用换行符 |
其中用open()函数打开一个文件时,默认‘rt’<=只读和文本模式。
文件对象的方法 | 执行操作 |
---|---|
f.close() | 关闭文件 |
f.read(size=-1) | 从文件中读取size个字符,当未给定size或给定负值时,读取文件指针开始的剩余的所有字符,作为字符串返回 |
f.readline() | 从文件中读取一整行字符串 |
f.write(str) | 将字符串写入文件 |
f.writelines(seq) | 向文件写入字符串序列seq,seq是一个返回字符串的可迭代对象 |
f.seek(offet,from) | 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节 |
f.tell() | 返回文件指针在文件中的位置 |
将文件(使用说明.txt)保存为(使用说明.mp3)
>>> f1=open('D:\\使用说明.txt')
>>> f2=open('D:\\使用说明.mp3','x')
>>> for each_line in f1:
f2.write(each_line)
将(使用说明.mp3打印到屏幕上)
>>> for each_line in f2:
print(each_line,end='')
Q00123电视直播(http://www.q00123.com)q00123电视直播是一款非常优秀的电视直播软件电脑版,该软件包含了目前所有的电视频道,用户能够直接选择自己所需要观看的频道进行直播,具有电视台多、播放流畅、视频清晰等特色,致力于为广大用户带来最方便、便捷的直播体验。
。。。。。。
末尾追加写入文件:
>>> f=open('D:\\使用说明.txt','a')
>>> print('文件名为:',f.name)
文件名为: D:\使用说明.txt
>>> seq=['carrot1','carrot2']
>>> f.writelines(seq)
>>> f.close()
>>> f=open('D:\\使用说明.txt')
>>> for each in f:
print(each,end='')
Q00123电视直播(http://www.q00123.com)q00123电视直播是一款非常优秀的电视直播软件电脑版,该软件包含了目前所有的电视频道,用户能够直接选择自己所需要观看的频道进行直播,具有电视台多、播放流畅、视频清晰等特色,致力于为广大用户带来最方便、便捷的直播体验。
软件功能:
1:可以在线电视直播,电视台有上万个,国内,国外,港台等全球世界各地的电视台。
2:可以在线电影直播,上百个电影院的直播台,每天24小时不间断的直播最新最好看的电影。
3:可以在线音乐直播,几十个音乐直播台24小时不断直播最好听最新的音乐。
4:可以在线收音广播,上万个全球广播电台,可以随意点播。
5:还有MV直播,搞笑节目直播,游戏直播,美女直播等等多样类型节目直播。
软件特点:
1:直播节目多。
2:节目源稳定。
3:软件操作方便
4:软件容量小。
5: 速度快。
6:广告少。
carrot1carrot2
下面练习题:源自小甲鱼,如涉及版权问题,贵小甲鱼官方所有。
一:编写一个程序,接受用户的输入并保存为新文件,程序实现如下:
def fwrite(filename):
print('请输入想要保存的文字(退出请按w/W):')
f=open(filename,'w')
while True:
a=input()
if a!='w'and a!='W':
f.write('%s\n'%a)
else:
break
f.close()
filename=input('请输入文件名')
fwrite(filename)
二:编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同出的行号与第一个不同字符的位置。实现如下:
def file_compare(file1,file2):
f1=open(file1)
f2=open(file2)
count=0
differ=[]
for each1 in f1:
each2=f2.readline()
count+=1
if each1!=each2:
differ.append(count)
f1.close()
f2.close()
return differ
file1=input('请输入需要比较的第一个文件名:')
file2=input('请输入需要比较的第二个文件名:')
differ=file_compare(file1,file2)
if len(differ)==0:
print('这两个文件完全一样')
else:
print('这两个文件有【%d】处不同:'%len(differ))
for each in differ:
print('第%d行不一样'%each)
三:编写程序,用户可以随意输入需要显示的行数,输入13:21打印第13行到21行,程序实现如下:
def file_print(file,num):
(start,end)=num.split(':')
if start =='':
start = 1
else:
start=int(start)
if end =='':
end = -1
else:
end = int(end)
f=open(file)
if start==1:
if end==-1:
print('文件%s从开头到结束的内容如下:'%file)
else:
print('文件%s从开头到%d行的内容如下:'%(file,end))
else:
if end ==1:
print('文件%s从%d行到结束的内容如下:'%(file,start))
else:
print('文件%s从%d行到%d行的内容如下:'%(file,start,end))
for i in range(start-1):
f.readline()#这里指针走到了start-1行,不一定是从0开始了
n = end-start+1
if n<0:
print(f.read())#这里表示end=-1,从start-1开始,打印至最后一行
else:
for i in range(n):
print(f.readline())
f.close()
file_name=input('请输入要打开的文件')
num=input('请输入要显示的行数【格式如13:21】:')
while num== '':
num=input('输入有误,请重新输入:')
file_print(file_name,num)
四:编写程序,实现全部替换功能,程序实现如下:
def f_replace(file_name,ole_word,new_word):
f_read=open(file_name)
count=0
content=[]
for each_line in f_read:
if old_word in each_line:
count+=1
each_line = each_line.replace(old_word,new_word)
content.append(each_line)
decide = input('\n文件%s中共有%s个【%s】\n您确定要吧也是有的【%s】替换为【%s】吗?\n【YES/NO】:'%(file_name,count,old_word,old_word,new_word))
if decide in['YES','Yes','yes']:
f_write = open(file_name,'w')
f_write.writelines(content)
f_write.close()
f_read.close()
file_name=input('请输入文件名:')
old_word=input('请输入需要替换的单词或字符:')
new_word=input('请输入新的单纯或字符')
f_replace(file_name,old_word,new_word)