python基础:(八)文件

目录

一.从文件中读取数据

各位小伙伴,文件这一块得好好学,多看多敲代码,以后处理数据,写爬虫少不了这个,先从基础(简单的)抓起,会用,然后在拓展延伸。

1.1读取整个文件

新建一个文本文件,在当前文件的根目录下,如下图所示:

复制代码
该文件存储的是部分圆周率pi,部分内容如下:
3.1415926535
  8979323846
  2643383279

讲解放在代码的注释,可以边看代码边对应注释进行参考:

python 复制代码
with open('pi.txt') as file_object:
    contents = file_object.read()
print(contents)
# 关键字with在文件不需要访问时自动关闭文件避免数据的丢失
# 函数open(),括号内部接受的是打开文件的路径。(python是在当前文件所在的目录中查找,就是和它同级目录),(默认只读)
# as file_object也就是这个文件对象(file_object)
# read()读取文件对象的值
# 注意使用read()读取到达文件末尾时返回一个空字符串,若想避免则可以调用rstrip()函数(contente.rstrip())

ps:补充个知识,就是文件都必须先打开在编辑,然后在关闭。

1.2文件路劲

路径有绝对路径和相对路径之分。

绝对路径:文件在计算机的准确位置。(c:/桌面/xxxx/xxxx)

相对位置:在当前文件的根目录。(xxx/xxx)

  • ps:pycharm中文件右击文件会出现相对与绝对路径。
  • ps:python文件使用'/'。
  • ps:windows文件使用'\'。
  • ps:python文件路径要么使用'/',要么使用'\ \'。(\通常和转义字符相关,\ \对每个斜杠进行转义)
1.3逐行读取
python 复制代码
#open('pi.txt')
#open('D:/Users/15204/Desktop/BingImageSpider-main/pi.txt')
with open('D:\\Users\\15204\\Desktop\\BingImageSpider-main\\pi.txt') as file_object:
    for line in file_object: #for循环,在文件中逐行读取内容
        print(line)

运行结果:

说明:

因为每一行文件本身存在一个换行符,print()函数存在一个换行符,因此打印的结果间距变大,若想避免,则继续使用rstrip函数即可。

二.写入文件

读取文件,相对应的就是写入文件,看下例:

python 复制代码
with open('hobby','w') as file_object: # open调用两个实参,第一个文件名(路径就是该文件的同级目录,所以不说路径),第二个是以什么方式打开,w是写入(write)
    file_object.write("I love one person,but it's a pity.")


运行程序以后:

ps:python只能将字符串写入文本文件,那也就是问什么创建的hobby文件类型是.txt。如果你想存储数据的话,必须使用函数str()转换为字符串格式。

复制代码
'w':write,写入文件,如果没有的话创建文件,如果有这个文件的话,文件内容将被清空在写入,若想避免可以使用'a'
'r':read,读取模式,字面意思
'a':add,附加模式,在原先基础添加
'r+':读写模式,字面意思

ps:若想写入多行数据,可以重复调用语句:

python 复制代码
 file_object.write("xxxxxx")
 # 注意此时写入是紧跟在文件末尾写入的(你可以使用换行符\n进行换行逐行输入)

ps:目前为止,博客写到这,python的基础语法就全部写完啦(建议先学c语言,有c基础的话(有时间会出个c系列),python语法最快一周左右就能掌握个差不多,能看懂别人代码)。博主因为要开学了,后面有时间会更新一些处理python异常,爬虫(在学习),GUI,以及一些数据的处理等等。

ps:博主水平有限,有问题欢迎大家指出,大家一起学习,一起进步!

ps:因为时间紧凑,所以博主写这些文章就是抓最基本的知识点,其它的可以举一反三。

ps:学完最基础的知识点,就可以着手做一些简单的项目,在项目中锻炼自己的编程能力,加油兄弟们!

相关推荐
史蒂芬_丁几秒前
C++深度拷贝例子
java·开发语言·c++
数据科学小丫30 分钟前
Python 数据存储操作_数据存储、补充知识点:Python 与 MySQL交互
数据库·python·mysql
Knight_AL33 分钟前
Nacos 启动问题 Failed to create database ’D:\nacos\nacos\data\derby-data’
开发语言·数据库·python
leiming61 小时前
CAN 通信协议学习讲义(带图文 + C 语言代码)
c语言·开发语言·学习
xht08322 小时前
PHP vs C语言:核心差异全解析
c语言·开发语言·php
yoothey2 小时前
Java字节流与字符流核心笔记(问答+考点复盘)
java·开发语言·笔记
查古穆2 小时前
python进阶-Pydantic模型
开发语言·python
沐知全栈开发2 小时前
Bootstrap4 导航栏
开发语言
kyriewen112 小时前
异步编程:从“回调地狱”到“async/await”的救赎之路
开发语言·前端·javascript·chrome·typescript·ecmascript·html5
AI+程序员在路上2 小时前
嵌入式软件技术大全
linux·开发语言·arm开发·单片机