Python教程

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

本文主要是介绍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')
这篇关于python文件操作笔记(数据读取)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!