当前位置: 首页 > news >正文

Python-从文件中读取数据-Sat-Sun

10.1

文件读取数据可以整个文件读取,也可以逐行读取。
首先在保存有.py文件的文件夹里创建一个pi_digist.txt文件,文件内容是

3.14
9265
3589

执行程序
file_reader.py

with open('pi_digist.txt') as file_object:
#接受文件名参数,在程序所在目录查找指定文件,
#返回一个表示文件的对象,将对象存在变量里content = file_object.read()#读取整个文件print(content)
>>>3.14
9265
3589

关键字with会在合适的时机关闭文件,如果调用close函数来执行文件关闭的操作,会有可能出现两种情况。当close条件语句未执行,文件未及时关闭,文件数据受损。或文件过早关闭,在需要访问时则会程序报错。

10.1.2 文件路径

相对路径,是指相对当前执行程序所在目录。

file_path = '\\test\\pi_digist.txt'
#注意是双反斜杠,在linux系统是斜杠

绝对路径是文件在计算机的所在位置的目录。

file_path = 'C:\\Users\\17483\\Desktop\\python_work\\test\\pi_digist.txt'

10.1.3逐行读取

逐行读取文件可以对文件对象使用for循环。

file_path = 'pi_digist.txt'with open(file_path) as file_object:for line in file_object:print(line)
>>>3.1492653589
#输出中的空白行来自两个换行符,
#一个换行符来自文件本身
#另一个是print函数输出时加的

要消除空白行可以用rstrip(),表示消除右边空行。
左边用lstrip(),同时消除两边用strip()。

file_path = 'pi_digist.txt'with open(file_path) as file_object:for line in file_object:print(line.rstrip())
>>>3.14
9265
3589

10.1.4创建包含文件各行内容的列表

使用with时函数返回的对象只能在with代码块里使用。如果要在其他地方使用该文件对象,可以把每行数据存储在列表里。

file_path = 'pi_digist.txt'
with open(file_path) as file_object:lines = file_object.readlines()
#readlines()函数返回一个以每行内容为元素的列表
#列表存储在变量lines
for line in lines:print(line.rstrip())
#遍历列表每个元素
>>>3.14
9265
3589

10.1.5使用文件内容

我们要创建一个包含文件所有内容且没有空格的字符串。

file_path = 'pi_digist.txt'
with open(file_path) as file_object:lines = file_object.readlines()
#打开文件,将每行内容存进列表
pi_string = ''
#创建一个存储了空字符的变量
for line in lines:#遍历列表pi_string += line.strip()
#使用strip()删除字符串两边的空格
print(pi_string)
print(len(pi_string))>>>3.1492653589
12

如果要将读取到的数字字符串作为数值使用,可以使用int()函数转换为整数,或float()转换为浮点数。

10.1.6可以处理大文件

这个文件的数据并不大,这个程序还可以处理更大的文件文件大小的限制取决于你电脑的内存。

file_path = 'pi_digist.txt'
with open(file_path) as file_object:lines = file_object.readlines()pi_string = ''
for line in lines:pi_string += line.strip()
print(pi_string[:5])
print(len(pi_string[:5]))>>>3.149
5

10.1.7判断圆周率中是否存在你的生日

file_path = 'pi_digist.txt'
with open(file_path) as file_object:lines = file_object.readlines()pi_string = ''
for line in lines:pi_string += line.strip()birth = input('Please enter your birthday:')
if birth in pi_string:print('Yes!')
else:print('No...')>>>Please enter your birthday:12
No...

输出n位圆周率精度的文章

10-1

file_path = 'test\\pi_digist.txt'with open(file_path) as file_object:content = file_object.read()print(content)with open(file_path) as file_object:for line in file_object:print(line.rstrip())with open(file_path) as file_object:lines = file_object.readlines()for li in lines:print(li.rstrip())>>>3.14
1592
6535
893.14
1592
6535
89
3.14
1592
6535
89

10-2

file_path = 'test\\pi_digist.txt'with open(file_path) as file_object:lines = file_object.readlines()str = ''
for line in lines:str += line.replace('1','0')
print(str)>>>3.04
0592
6535
89
http://www.lryc.cn/news/504222.html

相关文章:

  • 测试工程师的职业规划
  • 使用 Puppeteer 快速上手 Node.js 爬虫
  • 浏览器的跨域问题与解决方案
  • MyBatis一二级缓存的区别?
  • [2024-12 CISCN 长城杯] Crypto
  • pytorch bilstm crf的教程,注意 这里不支持批处理,要支持批处理 用torchcrf这个。
  • Python毕业设计选题:基于django+vue的疫情数据可视化分析系统
  • tomcat被检测到目标URL存在htp host头攻击漏洞
  • 1.初识python
  • 【密码学】ZUC祖冲之算法
  • Python面试常见问题及答案8
  • ASP.net Core EntityFramework Code EF code 汇总
  • u3d动画系统五【StateMachineBehaviour类】
  • IS-IS协议
  • 使用C++实现RSA加密解密
  • C++归并与快速
  • 金蝶云苍穹踩过的坑(慢慢更新)
  • AndroidStudio——安卓项目结构与文件介绍
  • 华为自反ACL实验
  • yml和xml分别代表什么
  • Qt多线程编程
  • springboot438校园志愿者管理系统(论文+源码)_kaic
  • PostgreSQL 常用运维SQL整理
  • Debezium Oracle CTAS 解析器实现:基于 ANTLR 的 CREATE TABLE AS SELECT 语句解析
  • 从零开始学docker(五)-可用的docker镜像
  • 力扣——322. 零钱兑换
  • .Net_比对Json文件是否一致
  • 科研笔记:ARR 与 ACL rolling
  • 【2024】Camunda常用功能基本详细介绍和使用-上 (1)
  • 用人话讲计算机:Python篇!(十二)正则运算+re模块