python基础(17)-文件操作

   这个,首先是要区分如何文件路径是什么?什么是相对路径?什么是绝对路径?linux的路径和windows的有啥区别;
   相对路径其实就是说,相对于本路径下的一个路径,在linux有一个很好的体检就是.\和..\,这就是相对路径的体现绝对路径就是从根目录开始,对于windows来说就是从某个影片开始,就是绝对路径
   其实,这里有一点很关键,也需要注意的是,linux和windows的路径是不一样的
   linux是\做分隔符,但是windows是/做分隔符,并且由于字符串反义的问题,需要//来进行标识
   但是我们还有个好的办法就是,有os模块可以利用
    如:
import os
myFiles = ['accounts.txt', 'details.csv', 'invite.docx']
for filename in myFiles:
    print(os.path.join('C:\\demo\\exercise', filename))

输出结果:
C:\demo\exercise\accounts.txt
C:\demo\exercise\details.csv
C:\demo\exercise\invite.docx

os.path.join一定要记住,用的很多,尤其当需要某个路径的时候,真的用的还是很多的

下面要学习的自然就是如何对文件进行基本的操作
首先,学会的是删除一个文件,os.remove("xxx")即可
然后看一下文件的基本操作:
文件的应用级操作可以分为以下 3 步,每一步都需要借助对应的函数实现:
打开文件:使用 open() 函数,该函数会返回一个文件对象;
对已打开文件做读/写操作:读取文件内容可使用 read()、readline() 以及 readlines() 函数;向文件中写入内容,可以使用 write() 函数。
关闭文件:完成对文件的读/写操作之后,最后需要关闭文件,可以使用 close() 函数。
一个文件,必须在打开之后才能对其进行操作,并且在操作结束之后,还应该将其关闭,这 3 步的顺序不能打乱。
=================================================
file = open("a.txt",“a+”,encoding="utf-8")
对于open函数,这一个就够了,一个函数就代表了如何打开一个文件,以什么样的方式打开文件,file是返回的对象;这就是C和面向对象的区别;a+表示追加,其他的权限,我觉得可以后面再了解,学过C基础的话那就不用了解了,和C一样,但是个人认为a+权限是最喜欢用的;
再来看看read函数,这里我们需要讲的比较多
首先,我们要讲一下,二进制的方式打开文件,和文本的方式打开文件的区别
文本模式,即所谓的原样输出,按照字符串文本进行输出,二进制模式则是将字符转换成为二进制的方式,在open的时候,为ab+(即带有b)则认为是二进制的方式打开文本;
f.read(size)中间为要读取的文字多少,比如是6,就代表从头读取6个字符;当然可以不带有size,如果不带有size的话,那么就会把整个文件的内容都进行读取;如果size大小查过文本的大小,那么也会将整个文本都进行读取;

#以二进制形式打开指定文件
f = open("my_file.txt",'rb+')
#输出读取到的数据
print(f.read())
#关闭文件
f.close()

再看来readline和readlines,readline是读取文件的某一行,和read一样,可以带有参数,readlines是读取所有的行,返回的是把每一行都当时一个列表的元素,最终返回的是列表;

f = open("my_file.txt")
读取一行数据
byt = f.readline()
print(byt)
byt = f.readlines()
print(byt)

接下来就是write函数
f.write(“xxxx”)即将该内容写入到文本中,
同时还有writelines函数,writelines函数是将字符串列表的内容写入到文本里;然后写成多行

f = open("a.txt", 'w')
f.write("写入一行新数据")
f.flush()#刷新缓冲区
f.close()#关闭该字符串,就没必要再重新解释了

f = open('a.txt', 'r')
n = open('b.txt','w+')
n.writelines(f.readlines())#轻松实现了文本复制;即将内容读成一个列表,然后再写入
n.close()
f.close()

================================================================
其实文章写到这里,文件操作的部分基本上已经总结的差不多了,不过还有两个地方是可以查看一下和总结一下的
f.tell()
f.seek()
这两个我觉得可以暂且的后面再总结,用到了看一下即可,和C语言很相似,即移动文件光标位置,这个不是关键
关键是第二个,关于with as的用法

with open('a.txt', 'a') as f:
    f.write("\nPython教程")

这个例子说明了如何使用with as,这种用法可以保证及时没有调用fclose也是可以的,即如果文件操作发生了异常,也是可以正常对文件进行编辑

到此为止,python的基本操作的介绍告一段落,下面讲述的则是如何并发编程

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容