【日常Python-15】文件

任务1.Python学习笔记

  1. 问题描述
    在文本编辑器中新建一个文件,写几句话来总结一下你至此学到的Python知识,其中每一行都以“In Python you can”打头。将这个文件命名为 learning_python.txt,并将其存储到为完成本次练习而编写的程序所在的目录中。编写一个程序,它读取这个文件,并将你所写的内容打印三次:第一次打印时读取整个 文件;第二次打印时遍历文件对象;第三次打印时将各行存储在一个列表中,再在with 代码块外打印它们。
    2.源代码
    learning_python.txt
In Python you can store as much information as you want.
In Python you can connect pieces of information.
In Python you can model real-word situations.

python程序

filename = 'learning_python.txt'

print("--- Reading in the entire file:")
with open(filename) as file_object:
	contents = file_object.read()
	print(contents)

print("\n--- Looping over the lines:")
with open(filename) as f:
	for line in f:
		print(line.rstrip())

print("\n--- Storing the lines in a list:")
with open(filename) as f:
	lines = f.readlines()
	
for line in lines:
	print(line.rstrip())
  1. 结果截图
    在这里插入图片描述

任务2.C语言学习笔记

  1. 问题描述
    可使用方法replace() 将字符串中的特定单词都替换为另一个单词,读取刚创建的文件learning_python.txt中的每一行,将其中的Python都替换为另一门语言的名称,如C。将修改后的各行都打印到屏幕上。

  2. 源代码

filename = 'learning_python.txt'
# Get rid of newline, then replace Python with C.
print("\n--- Looping over the lines:")
with open(filename) as f:
	for line in f:
		print(line.replace('Python', 'C'))
  1. 结果截图
    在这里插入图片描述

任务3.访客

  1. 问题描述
    编写一个程序,提示用户输入其名字;用户作出响应后,将其名字写入到文件guest.txt中。

  2. 源代码

  • guest.txt为空文件
  • 程序源代码
filename = 'guest.txt'

with open(filename, 'w') as f:
	f.write(input("Please input your name:"))
  • 运行程序并输入姓名Aurora
    在这里插入图片描述
  1. 结果截图
    打开guest.txt文件
    在这里插入图片描述

任务4.访客名单

  1. 问题描述
    编写一个while 循环,提示用户输入其名字。用户输入其名字后,在屏幕上打印一句问候语,并将一条访问记录添加到文件guest_book.txt中。确保这个文件中的每条记录都独占一行。
  2. 源代码
filename = 'guest_book.txt'

msg = "\n(Enter 'quit' when you are finished.)"
msg += "\nPlease enter your name:"

while True:
	name = input(msg)
	if name == 'quit':
		break
	else:
		with open(filename, 'a') as file_object:
			file_object.write("\nHello, " + name + "!")

运行代码
在这里插入图片描述

  1. 结果截图
    打开guest_book.txt
    在这里插入图片描述

知识点

  • 可以编写一个这样的程序:读取一个文本文件的内容,重新设置这些数据的格式并将其写入文件,让浏览器能够显示这些内容。 要使用文本文件中的信息,首先需要将信息读取到内存中。为此,可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。
  • 关键字with在不再需要访问文件后将其关闭。在以上程序中,调用了open() ,但没有调用close() ;我们也可以调用open() 和close() 来打开和关闭文件,但 这样做时,如果程序存在bug,导致close() 语句未执行,文件将不会关闭。这看似微不足道,但未妥善地关闭文件可能会导致数据丢失或受损。如果在程序中过早地调 用close() ,我们会发现需要使用文件时它已关闭 (无法访问),这会导致更多的错误。并非在任何情况下都能轻松确定关闭文件的恰当时机,但通过使用前面所示的结构,可让Python去确定:可以只管打开文件,并在需要时使用它,Python自会在合适的时候自动将其关闭。
  • 变量 = file_object,read():方法read()可读取这个文件的全部内容,并将其内容作为一个长长的字符串存储在变量中。这样,通过打印变量的值,就可以将这个文本的全部内容显示出来。
  • read() 到达文件末尾时返回一个空字符串,而将这个空字符串显示出来时就是一 个空行。要删除多出来的空行,可在print 语句中使用rstrip() 。(rstrip() 删除(剥除)字符串末尾的空白)
  • 要让Python打开不与程序文件位于同一个目录中的文件,需要提供文件路径 ,它让Python到系统的特定位置去查找。
  • 可使用相对文件路 径来打开该文件夹中的文件:相对文件路径让Python到指定的位置去查找,而该位置是相对于当前运行的程 序所在目录的。
  • 还可以将文件在计算机中的准确位置告诉Python,这样就不用关心当前运行的程序存储在什么地方了。这称为绝对文件路径 。在相对路径行不通时,可使用绝对路径。例如, 如果text_files并不在文件夹python_work中,而在文件夹other_files中,则向open() 传递路径’text_files/ filename.txt’ 行不通,因为Python只在文件夹python_work中查找 该位置。为明确地指出你希望Python到哪里去查找,你需要提供完整的路径。 绝对路径通常比相对路径更长,因此将其存储在一个变量中,再将该变量传递给open() 会有所帮助。通过使用绝对路径,可读取系统任何地方的文件
  • 就目前而言,最简单的做法是,要么将数据文件存储在程序文件所在的目录,要么将其存储在程序文件所在目录下的一个文件 夹(如text_files)中。
  • 要以每次一行的方式检查文件,可对文件对象使用for 循环。
  • 要将文本写入文件,在调用open() 时需要提供另一个实参,告诉Python你要写入打开的文件。
  • Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str() 将其转换为字符串格式。
  • 函数write() 不会在我们写入的文本末尾添加换行符,要让每个字符串都单独占一行,需要在write() 语句中包含换行符。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值