小甲鱼python教程第28-29讲--python文件:笔记习题及答案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38285131/article/details/79138588

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)
展开阅读全文

没有更多推荐了,返回首页