ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python_14文件操作

2022-08-26 18:00:10  阅读:176  来源: 互联网

标签:文件 14 Python txtFile print txt os 目录


一、文件操作:

Python提供了必要的函数和方法进行默认情况下的文件基础操作。可以用file对象做大部分的文件操作。
open函数,你必须先用Python内置的open函数打开一个文件,创建一个file对象,相关的辅助方法才可以调用它进行读写。
语法:file object = open(file_name[,access_mode][,buffering])
各个参数细节如下:
file_name:包含你要访问的文件名称的字符串值。
access_mode:决定了打开文件的模式:只读、写入,追加等。所有可取值如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。对文件的操作包含r、w、a。
                       1、r:只读方式打开文件。
                       2、rb:以二进制格式打开一个文件用于只读。
                       3、r+:打开一个文件用于读写。
                       4、rb+:以二进制格式打开一个文件用于读写。
                       5、w:写的方式打开文件,表示新建或覆盖文件,也有wb,w+,wb+,与r类似
                       6、a:追加的方式打开文件,表示在文件末尾添加内容,也有ab,a+,ab+。
                       注:r、w方式操作文件时,文件指针指向文件开头,a方式时,指向文件末尾
buffering:如果buffering的值被设为0,就不回有寄存。如果buffering的值取1,访问文件会寄存行。如果将buffering的值设为大于1的整数,表明这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

File对象的属性:
file.closed        :返回true,如果文件已被关闭,否则返回false。
file.mode         :返回被打开文件的访问模式。
file.name         :返回文件的名称。
file.encoding   :返回文件的编码。

 1 #Python文件操作基础2022.08.14
 2 import os
 3 # txtPath = 'E:\\Python_code\\project01\\chapter04_02\\test.txt'   #第一种方法直接写目录
 4 # print(os.getcwd())                 #返回当前模块的目录
 5 
 6 txtPath = os.getcwd()+'\\test.txt'   #如果工作当中项目需要移植代码到其他同事哪里时,那么如果不把这个地址也放到E盘对应目录下项目就会报错,所以使用os.getcwd()方法替换
 7 txtfile = open(txtPath,'r')          #file object = open(file_name,[,access_mode][,buffering])
 8                                      #access_mode:决定打开文件的模式:只读,只写,追加等。非强制的,默认文件访问模式为只读r
 9                                      #buffering的值被设为0,就不会有寄存,取1访问文件会寄存,大于1表示寄存区的缓存大小,取负值,系统缓冲大小则为系统默认
10 
11 
12 print(txtfile.closed)   #返回true如果文件已关闭,否则返回False
13 print(txtfile.mode)     #返回被打开文件的访问模式
14 print(txtfile.name)     #返回文件的名称
15 print(txtfile.encoding) #返回文件编码

 

二、往文件写入数据:

       write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不仅仅是数字。Write()方法不在字符串结尾不添加换行符('\n'):
       flush()方法刷新内部缓冲,直接把内部缓冲区的数据立刻写入文件
语法:
fileObject.write(string)
fileObject.flush()

文件位置:
      Tell()方法告诉你文件内的当前位置,换句话说,下一次的读写会发生在文件开头这么多字节之后。
       seek(offset,[from])方法改变当前位置。Offset变量表示要移动的字节。From变量指定开始移动字节的参考位置。如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设置为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

其他操作文件的方法:
fp.readline([size])    :读一行,如果定义了size,有可能返回的只是一行的一部分
fp.readines([size])  :把文件每一行作为一个list成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。
fp.writelines(seq)   :把seq的内容全部写到文件中(多行一次性写入)。如果需要换行,则需要自己加入每行的换行符。
fp.next()                 :返回下一行,并将文件操作标记位移到下一行。如果需要换行则要自己加入每行的换行符 python2.7支持

 1 #Python文件操作基础2022.08.14
 2 import os
 3 # txtPath = 'E:\\Python_code\\project01\\chapter04_02\\test.txt'   #第一种方法直接写目录
 4 # print(os.getcwd())                 #返回当前模块的目录
 5 
 6 txtPath = os.getcwd()+'\\test.txt'   #如果工作当中项目需要移植代码到其他同事哪里时,那么如果不把这个地址也放到E盘对应目录下项目就会报错,所以使用os.getcwd()方法替换
 7 txtfile = open(txtPath,'r')          #file object = open(file_name,[,access_mode][,buffering])
 8                                      #access_mode:决定打开文件的模式:只读,只写,追加等。非强制的,默认文件访问模式为只读r
 9                                      #buffering的值被设为0,就不会有寄存,取1访问文件会寄存,大于1表示寄存区的缓存大小,取负值,系统缓冲大小则为系统默认
10 
11 
12 print(txtfile.closed)   #返回true如果文件已关闭,否则返回False
13 print(txtfile.mode)     #返回被打开文件的访问模式
14 print(txtfile.name)     #返回文件的名称
15 print(txtfile.encoding) #返回文件编码
 1 # 第四章文件读操作
 2 import os
 3 filePath = os.getcwd()+'\\test.txt'
 4 txtFile = open(filePath,'r')
 5 # content = txtFile.read()     #读取所有内容
 6 # print(content)
 7 
 8 # content = txtFile.read(3)     #读取部分内容,传入count就只读count个字符串
 9 # print(content)
10 
11 
12 # content = txtFile.readline()   #读取一行 参数 size
13 # print(content)
14 
15 
16 lines = txtFile.readlines()   #读取多行,返回列表 参数size 返回保护size的行
17 print(lines)
 1 #第四章文件写入操作2022.08.14
 2 import os
 3 filePath = os.getcwd()+'\\write.txt'
 4 txtFile = open(filePath,'w')     #w写的方式打开文件,表示新建或覆盖文件
 5 
 6 
 7 # txtFile.write('ssss')
 8 # txtFile.flush()
 9 
10 lista = ['hello\n','world\n','ni\n','hao\n']
11 txtFile.writelines(lista)   #把seq序列的内容全部写文件中(多行一次性写入)。如果需要换行则需要自己加入每行的换行符。
12 txtFile.flush()     #刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件
13 txtFile.close()     #关闭文件
1 #第四章文件写入操作2022.08.14
2 import os
3 filePath = os.getcwd()+'\\write.txt'
4 txtFile = open(filePath,'a')         #a追加的方式打开文件,r、w操作文件时,文件指针指向文件开头,a方式时,指向末尾
5 txtFile.write('123456')
6 txtFile.flush()     #刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件
7 txtFile.close()     #关闭文件

 

三、目录操作:

mikdir()方法:可以使用os模块的mikdir()方法,在当前目录下创建新的目录
语法:os.mikdir("newdir")

chdir()方法:可以用chdir()方法来改变当前的目录
语法:os.mikdir("newdir")

rmdir()方法:删除目录,目录名称以参数传递。在删除这个目录之前,它的所有内容应该先被清除。
语法:os.rmdir("dirname")

makedirs()方法:创建多级目录
语法:os.makedirs("c:\python\test")

getcwd()方法:得到当前工作目录
语法:os.getcwd()

isdir()/isfile()方法:检验给出的路径是否是一个目录/文件
语法:os.path.isdir("E:\\book\\temp")

 1 #第四章文件位置操作
 2 import os
 3 filePath = os.getcwd()+'\\write.txt'
 4 txtFile = open(filePath,'rb')         #需要以二进制的方式rb去读,才能使用seek(3,1),seek(3,2)当前指针和末尾指针位置偏移
 5 
 6 # s1 = txtFile.read(3)
 7 # print(txtFile.tell())
 8 # s2 = txtFile.read(4)
 9 # print(txtFile.tell())             #tell()查看文件指针位置
10 # print(s1)
11 # print(s2)
12 
13 s1 = txtFile.read(3)
14 txtFile.seek(-3,2)     #改变了文件指针的当前位置,seek(offset,from),offset表示移动的字节数,from设为0,以文件开头作为移动字节参考位置,1是当前,2是结尾
15 s2 = txtFile.read(3)
16 print(s1)
17 print(s2)
 1 #第四章文件删除、重命名、目录操作2022.08.14周日PM
 2 import os
 3 import shutil
 4 
 5 # os.rename('a.txt','b.txt')        #将a.txt改成b.txt
 6 # os.rename('.\\b.txt','.\\a.txt')  #相对路径写法,也可绝对路径
 7 # os.remove('.\\a.txt')             #移除文件a.txt
 8 # os.mkdir('test1')                 #使用os模块的mkdir()方法在当前目录下创建新的目录
 9 # os.chdir('test1')                 #可以用chdir()方法来改变当前的目录
10 # print(os.getcwd())                #os.getcwd()得到当前工作目录
11 # os.mkdir('test2')
12 # os.chdir('test1')
13 # os.rmdir('test2')                 #删除目录,目录名称以参数传递。在删除这个目录之前,它的所以内容应该先被清除。
14 
15 # os.chdir('test1')
16 # os.mkdir('test2')
17 
18 # os.rmdir('test1')
19 # os.makedirs('.\\a\\b\\c')         #创建多级目录
20 # shutil.rmtree('.\\a')             #删除多级目录,需要import shutil
21 
22 boolean = os.path.isdir('test1')     #检验给出路径是否是一个目录
23 print(boolean)
24 b = os.path.isfile('Demo01.py')      #检验给出的路径是否是一个文件
25 print(b)

标签:文件,14,Python,txtFile,print,txt,os,目录
来源: https://www.cnblogs.com/yyym/p/16617321.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有