QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 117|回复: 0
打印 上一主题 下一主题

[个人总经验] python文件管理操作

[复制链接]
字体大小: 正常 放大

833

主题

1

听众

2185

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-4-26 16:26 |只看该作者 |正序浏览
|招呼Ta 关注Ta
件操作:   CPU 储存器  输入设备,输出设备储存器当中又有内存和硬盘之分,内存,变量就是在内存中.  文件和数据就是在硬盘中.  一般的操作流程是先打开文件,读文件,写文件,后关闭文件.打开文件操作当中有一个内联函数open('路径 ', '进行的操作 ','若是写读的操作,则这里是编译的方式encoding,若不写则默认为编译方式为utf8 ')内联函数open的返回值是文件类型变量,因为文件的内容是在硬盘上的,此处文件对象是在内存上的一个变量,后续文件操作都是拿着这个文件对象进行操作的,此处的文件对象就像一个遥控器一样专业的术语叫做句柄handle.常见的进行操作,有' r'读   ' w'写(这个显示把原有文件里面的内容全部清空,然后再写),但这个'a '写  (这个写是在原有文件内容的末尾)   关闭文件使用close  形式:对象.close()
, ]4 [( E5 A; Z+ m. ^$ t3 E: W0 D' W; [- s
每个程序在启动的时候都会默认打开三个文件:1.标准输入(体现在键盘)2.标准输出(体现在显示器)3.标准错误(体现在显示器)
  z6 J' X- x2 {. Y  L' v2 I# x1 y" P1 A, H& h5 Z
文件资源泄露其实是一个很重要的问题.  因为文件使用完之后一定要关闭,打开文件其实是在申请一定的系统资源,  不再使用文件的时候,资源应及时释放,否则就可能造成文件资源的泄漏, 进一步导致其他大部分的代码无法顺利打开,正是因为一个系统的资源是有限的,因此一个程序能打开的文件个数也是有限的., o" d2 r" b" u& Y0 [4 J- |
: d1 n) Q& b* {) ~% J4 E% W
python当中有一个很重要的机制,垃圾回收机制GC  自动的将不使用的变量给释放掉.5 ]& r) V& j: `0 i7 w7 e

, x0 l) A$ R% i! I虽然Python给了我们一个后手,让我们一定程度的避免了上述问题,但是也不能完全依赖自动释放机制,因为制动释放机制不一定及时,它需要判定是否为垃圾,那这需要以一定时间周期,如果在这周期内我就直接打开了所有文件,导致文件泄露了,所以不应该完全依赖他,而应该有关闭文件操作的意识。5 A- Z2 }  Q% v. Q0 j4 P) Y4 j

' y9 ^" |6 E/ F讲讲具体操作,写:1.先打开open('路径 ','w或者a')取决于之前它们俩的区别  2.变量.write('内容 ') 3.变量.close()如果文件对象已经关闭了,那就意味着系统和该文件相关的内存资源已经释放了,若强行写则会抛异常.2 _; t( x8 j4 [+ O

( [- U8 e7 u+ h读:1.先打开open('路径',' r')2.变量.read(数字)这个数字表示多少数字的字符(不是字节哦)注意中文和英文相似,在计算机中都是使用数字来表示字符的, 哪个数字对应哪个汉字常见的版本有:GBK  UTF8这两种编码方式.在哪里看呢?在文本记事本右下角有编码方式,如果没有的话,那就从菜单,选择文件,选择另存于就可以看到编码方式了. 读的编码方式,应与文件的编码方式一致.系统默认编码方式为GBK,UTF8是比GBK使用更广泛的编码方式.上述已经讲了如何对编码方式进行更改 也就是主动调下open的第3个参数encoding=' UTF8'这个也就是关键字参数.而open的前两个参数表示在什么路径下进行怎样的操作,这就是位置参数
& M6 P3 ^: V4 X8 S/ p4 F5 O8 V& q# S8 g# x# J
2.更常见的需求是按行来读取的,最简单的办法直接for循环.for 变量 in 对象.注意打印的函数print,在末尾会自带一个斜杠n,若不想要它自带的斜杠,则可以自己设定想要末尾是什么,通过print(   ,end=' 自定义')这也就是一个关键字参数。而文本记事本中也会每行的末尾也会自带一个斜杠n.
( \' g+ d! L/ z  A3 S1 w1 h) {3 v4 O' y  t- x
3.还可以使用readlines方法,直接把整个文件所有内容都读出来,按照行组织的一个列表里
/ |3 O3 Q3 A1 ]" c  a( T' Y1 v' T- z/ V1 }3 ~6 F
注意我上述所有说的方法,一定要记住这里的方法并不是语文上的方法,而是计算机里面的方法,这是要明确说明对象才能使用的。
4 A# Z( J( v( y  S8 {5 z. \$ @& H$ ?/ H+ K$ I* K7 j* T6 a
上下文管理器:为防止未释放资源,而系统自带帮忙释放。体现在当with对应的代码块结束,就会执行对象的关闭。with open(跟上述一样   )as  对象:会自动帮对象释放资源,所以以后直接用with搭配open来打开文件.$ w- m$ T  h) k7 h3 x
————————————————
! |3 \4 |7 j8 ^2 ?# z- X+ j
0 C  ?2 _# c/ }4 p                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
  s8 C6 e9 `3 V1 M- {( q
" {! \0 J- r) L6 A$ D: P! B' m( L原文链接:https://blog.csdn.net/2301_81874719/article/details/138212331. g5 E$ I- ]7 [/ y# ?5 w- O) z
) v. _# ~3 X$ B+ b. I/ b- |

8 v* P+ E7 R+ A) `/ x3 ]7 l7 o
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2024-6-2 22:44 , Processed in 0.237246 second(s), 51 queries .

回顶部