Python的文件管理

读取文件

首先我们可以先创建一个工程项目,如图所示:

打开我们名为1.读取文件.py的python文件,然后我们可以写下读取Python文件的代码,代码如下:

复制代码
f = open("1.txt", "r")
print(f.read())
f.close()

open可以打开我们项目下的文件,open括号里面传入的参数第一个是我们的文件名, 第二个是我们文件的打开方式,第二个参数可以是"r "(只读),也可以是"w "(只写),也可以是"w+ "(打开后,清空原有内容,成为一个新的空文件,对这个空文件具有读写权限),同样的还有r+ (打开后,可以读取文件内容吧,保存原有内容,追加写内容,写动作则是追加的新内容。其作用和**a+**基本相同。)

当然,我们还有另外一种方式可以读取文件,就是用with的方式:

复制代码
with open("1.txt", "r") as f:
    a = f.read()
    print(a)

同样可以传入2个参数,第一个参数仍然是文件名,第二个参数为文件获取方式,同样可以是'r' 只读,'w'写文件,和上面的一样。

中文乱码问题

如果大家在读取文件的时候遇到中文乱码的时候:

复制代码
with open("chinese.txt", "wb") as f:
    f.write("这是中文的,this is Chinese".encode("gbk"))
    
with open("chinese.txt", "rb", ) as f:
    print(f.read())
    #print(f.read().decode('gbk'))

更多的读写方式

复制代码
with open("new_file.txt", "r") as f:
    print(f.read())
with open("new_file.txt", "r+") as f:
    f.write("text has been replaced")
    f.seek(0)       # 将开始读的位置从写入的最后位置调到开头
    print(f.read())

|------|--------------------|
| mode | 意思 |
| w | (创建)写文本 |
| r | 读文本,文件不存在会报错 |
| a | 在文本最后添加 |
| wb | 写二进制 binary |
| rb | 读二进制 binary |
| ab | 添加二进制 |
| w+ | 又可以读又可以(创建)写 |
| r+ | 又可以读又可以写, 文件不存在会报错 |
| a+ | 可读写,在文本最后添加 |
| x | 创建 |

分享、在看与点赞

只要你点,我们就是胖友

来自: Python的文件管理https://mp.weixin.qq.com/s?__biz=Mzk0NTQ3OTk3MQ==&mid=2247485590&idx=1&sn=23e03612bbd193273436dc260533f8aa&chksm=c31580daf46209cc27780184562e9b9d1097ce6d617f66b715fdd58b9cbe4adadeed76cf80e7&token=355315523&lang=zh_CN#rd

相关推荐
爱勇宝1 小时前
小红花成长新版:模板来了,鼓励也更容易开始
前端·后端·程序员
竹林8181 小时前
Solana前端开发:我在一个NFT铸造页面上被@solana/web3.js的Connection和Transaction签名坑了两天
前端
冬奇Lab2 小时前
每日一个开源项目(第144篇):ai-website-cloner-template - 一条命令、多 Agent 并行,把任意网站逆向成 Next.js 代码
前端·人工智能·开源
玄玄子2 小时前
webpack publicPath作用原理
前端·webpack·程序员
HduSy2 小时前
帮 Claude Code 做了个菜单栏 Token 看板,聊聊里面的一些实现逻辑
前端
用户059540174462 小时前
用了6个月LangChain,才发现AI Agent的记忆存储一直有坑——写了23个Pytest用例才彻底修好
前端·css
奶油mm2 小时前
我偷偷把公司的祖传 jQuery 项目改成了 Vue3,CTO 没发现,但全组都来抄我的代码了
前端
用户2136610035722 小时前
Vue2非父子通信与动态组件
前端·vue.js
PedroQue992 小时前
Vite插件体系1.0.0:API稳定,生产就绪
前端·vite
用户059540174462 小时前
把LLM记忆测试从手工脚本换成Pytest参数化,回归时间从2小时降到10分钟
前端·css