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

相关推荐
fqbqrr2 小时前
2606C++,C++构的多态
开发语言·c++
biter down2 小时前
从 0 到 1 搭建 Python 接口自动化测试框架(博客系统实战)
开发语言·python
肖永威4 小时前
Python多业务并行计算框架插件化演进:从硬编码到动态注册
python·插件化·并行计算·动态注册
yz_aiks4 小时前
Linux Jar包配置Systemd自启动实战:从排查到配置全流程
linux·python·jar·自启动·systemd
threelab4 小时前
Three.js 物理模拟着色器 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
武器大师724 小时前
lv_binding_js 代码解读
开发语言·javascript·ecmascript
不知名的老吴4 小时前
线程的生命周期之线程“插队“
java·开发语言·python
kaikaile19955 小时前
数字全息图处理系统(C# 实现)
开发语言·c#
xsc6996755 小时前
从零搭建大模型与智能体平台 - 完整技术详解
python