python基础语法 007 文件操作-2文件支持模式&文件的内置函数

1.3 文件支持的模式

|-----|-------------------------------------------------------------------------------------------------------------------------------------|
| 模式 | 含义 |
| 'r' | open a file for reading(default) |
| 'w' | open a file for writing,creates a new file if it does not exist or truncates the file if it exists |
| 'x' | open a file foe exclusive creation. if the file already exists, the operation fails.独创模式,已经存在文件还写? 错误信息:fileexistserror:file wxists |
| 'a' | open for appending to the end of the file without truncating it ,creates a new file if it dose not exist |
| 't' | open in text mode (default) |
| 'b' | open in binary mode |
| '+' | open a file for updating (reading and writing) |

A、python中的open函数没有'rw' 这个参数,如果需要又读又写,可以使用 'r+' or 'w+' 来代替,否则会报下列错误

python 复制代码
file = open('new1_file', 'rw',encoding='utf-8')
file.write("url:/futureloan/mvc/api/member/register@mobile:18866668888@pwd:123456\n")
file.write("url:/futureloan/mvc/api/member/recharge@mobile:18866668888@amount:1000\n")
#读取数据
date = file.read()
file.close()



"""
ValueError: must have exactly one of create/read/write/append mode
"""

""" 改为:
file = open('new1_file', 'r+',encoding='utf-8')
"""

1.4 文件内置函数

1.4.1 readlines:

指:按行读取一个文本文件中的内容,并将每一行存储为一个字符串元素,最终返回一个包含所有元素的列表

python 复制代码
file = open('new1_file', 'r+',encoding='utf-8')
file.write("url:/futureloan/mvc/api/member/register@mobile:18866668888@pwd:123456\n")
file.write("url:/futureloan/mvc/api/member/recharge@mobile:18866668888@amount:1000\n")
data = file.readlines()
print(data)
file.close()


"""结果
['url:/futureloan/mvc/api/member/register@mobile:18866668888@pwd:123456\n', 'url:/futureloan/mvc/api/member/recharge@mobile:18866668888@amount:1000\n']

"""
python 复制代码
f = open("demo.txt",'w+',encoding='utf-8')
f.write('new line\n')
f.write('new2 line\n')
f.close()

"""
readlines() 读取每一行,会存放到列表当中,每一行的内容就是列表的一个元素
read() 得到的是一整个字符串
"""
f = open("demo.txt",'r',encoding='utf-8')
data = f.readlines()
print(data)

"""结果
['new line\n', 'new2 line\n']
"""

每个元素的末尾会存在\n, 怎么去除?

python 复制代码
"""
每个元素的末尾会存在\n

#分行打印时会把\n打印,
"""
#方法一
for line in data:
    print(line)

"""结果
new line

new2 line

"""

#方法二 去除\n
#strip 可以去除空格和换行
for line in data:
    print(line.strip())

"""结果
new line
new2 line
"""

#方法三 去除\n
for line, value  in enumerate(data):
    if line == len(data) -1:
        #最后一行
        print(value[:])
    else:
        #其他行
        print(value[:-1])

"""结果
new line
new2 line
"""

f.close()

1.4.2 tell / seek

指控制文件光标的操作

seek(1,2) :1表示光标移动的偏移量, 2表示相对的位置:0表示开始,1表示当前光标,2表示末尾

以字节来移动

1.4.3 with

防止忘记关闭文件

python 复制代码
"""
with 语句可以节省关闭文件的操作
"""
f = open("demo.txt")
f.read()
f.close()  # 该步骤容易遗忘

#打开文件,用f去接受
#上下文表达式
with open("demo.txt" ) as f:
    f.read()


#防止这样的书写
# f = open("demo.txt")
# f.read()
# f = open("demo.txt", 'w')
# f.write('hellp')
# f = open("demo.txt")
# f.read()

1.5 例子:

1.5.1 将文件中的内容读取

python 复制代码
#第一步打开文件
f = open("new_file.txt",encoding='utf-8')
data = f.read()
print(data)


#换行符分割 '\n'
new_data = data.split('\n')
print(new_data)
相关推荐
提笔忘字的帝国20 分钟前
【教程】macOS 如何完全卸载 Java 开发环境
java·开发语言·macos
flysh0535 分钟前
C# 架构设计:接口 vs 抽象类的深度选型指南
开发语言·c#
2501_9418824837 分钟前
从灰度发布到流量切分的互联网工程语法控制与多语言实现实践思路随笔分享
java·开发语言
bkspiderx37 分钟前
C++中的volatile:从原理到实践的全面解析
开发语言·c++·volatile
小鸡吃米…1 小时前
机器学习中的回归分析
人工智能·python·机器学习·回归
沛沛老爹1 小时前
Java泛型擦除:原理、实践与应对策略
java·开发语言·人工智能·企业开发·发展趋势·技术原理
专注_每天进步一点点1 小时前
【java开发】写接口文档的札记
java·开发语言
代码方舟1 小时前
Java企业级实战:对接天远名下车辆数量查询API构建自动化风控中台
java·大数据·开发语言·自动化
flysh051 小时前
C# 中类型转换与模式匹配核心概念
开发语言·c#
AC赳赳老秦1 小时前
Python 爬虫进阶:DeepSeek 优化反爬策略与动态数据解析逻辑
开发语言·hadoop·spring boot·爬虫·python·postgresql·deepseek