python文件操作笔记(数据读取&文件写入)

文件操作基础
一.数据读取
1.读取

with open('text.txt')  as file:
	contents = file.read()
print(contents)

这样做会有空格,所以我们用rstrip()函数清除空格

with open('text.txt') as file:
	contents = file.read()
print (contents.rstrip())

#rstrip([chars])函数中chars – 指定删除的字符(默认为空格)

2.添加文件路径的数据读取

file_path = '/home/others/filename.txt'
with open(file_path) as file:

#注意:windows系统在显示文件路径时是反斜杠\而不是斜杠/,我们在python编程时要用斜杠/,此外,还可以使用\方式,表示转义。
例如’C:\path\to\file.txt’或者’C:/path/to/file.txt’都是可以的。

3.逐行

filename = 'haha.txt'
with open(filename) as file:
	for line in file:
		print (line)

调用open()函数把一个表示文件以及文件内容的对象赋予给了变量file。
这里同样会遇到输出空格的问题,再次调用rstrip()

filename = 'haha.txt'
with open(filename) as file:
	for line in file:
		print (line.rstrip())

接下来要存储文件的各行的内容:
需要注意的是,在使用关键字with的时候,open()返回的文件对象只会在with代码块内可用,如果要在with外访问,可以在with内先把各行存储在一个列表中,然后在with外使用这个列表:这样做的好处是:我们可以立即处理文件的各个部分也可以选择推迟处理文件内容。

filename = 'haha.txt'
with open(filename) as file:
	lines = file.readlines()
for line in file:
		print (line.rstrip())

这里我们用readlines()读取每一行之后,将其存入在一个列表中,然后实现了在with外进行循环打印lines列表内的内容。

4.存储之后的调用:
可以通过创建一个字符串,一个包含所有文件中存储的所有的数字的字符串,且没有空格:

filename = 'haha.txt'
with open(filename) as file:
	lines = file.readlines()
little_string = ' '
for line in lines:
	little_string += line.rstrip()
print(little_string)
print(len(little_string))

#这是为了把各个行加入到空列表little_string里面:

for line in lines:
	little_string += line.rstrip()

且变量little_string指向的字符串包含原来的位于每行左边的空格,可以用strip()

值得注意的是:python在读取文件时,会把所有的文本都解读为字符串,如果读取的是整数,要用int()或float()将字符转换再进行数据处理。

5.选择性输出:

filename = 'hhh_many.txt'
with open(filename)  as file:
	lines = file.readlines()
big_string = ' '
for line in lines:
	big_string += line.strip()
print(f'{big_string[44:55]}......')
print(len(big_string)) 

注释:python的print字符串前面加f表示格式化字符串,加f后可以在字符串里面使用用花括号括起来的变量和表达式,如果字符串里面没有表达式,那么前面加不加f输出应该都一样.

Python3.6新增了一种f-字符串格式化
格式化的字符串文字前缀为’f’和接受的格式字符串相似str.format()。它们包含由花括号包围的替换区域。替换字段是表达式,在运行时进行评估,然后使用format()协议进行格式化。
formatted string literals, 以 f 开头,包含的{}表达式在程序运行时会被表达式的值代替。
(引用)

6.小练习
判断圆周率中是否存在你的生日:

filename = 'hhh_many.txt'
with open(filename)  as file:
	lines = file.readlines()
big_string = ' '
for line in lines:
	big_string += line.strip()
birthday = input('Enter your birthday')
if birthday in big_string:
	print(f'your birthady {birthday} appears in the first million digits of pi')
else:
print('not found')

二,文件写入
首先明确open()函数的两个参数,第一个是文件地址,第二个是文件的写入模式:分为读取模式(‘r’),写入模式(‘w’),附加模式(‘a’),和读写模式(r+):
如果省略参数,则默认只读模式。

filename = 'haha.txt'
with open(filename) as file:
	file.write("I LOVE programing")

如果想要为文件添加内容,可以通过附加模式打开,这样就避免了写入模式中python会在返回文件对象前清空对象的内容。

filename = 'haha.txt'
with open(filename,'a') as file:
	file.write("I LOVE programing,cause its fascination")
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值