Python文件

#文件的模式

# 'r','w','a'
w模式(write)
1 def write():
2     fw = open('test.txt','w')       #w写模式会覆盖数据,并且如果文件不存在就会创建该文件
3     fw.write('你好啊,世界')
4     fw.write('
再见,蜘蛛侠sssw')        #
相对于换行输入
5     line = ['
wo','
思考方式','
akdfk']
6     fw.writelines(line)         #writelines写入多行,参数可以是变量,列表等等
7     # fw.write(line)      #报错,write()参数只能是字符串
8     fw.close()
9 write()

  r模式(read)


 1 def read():
 2     fr = open('test.txt','r')      #读方式打开文件
 3     fr_content = fr.read()      #read()没有指定参数,就读取所有数据,指定了参数,就读取对应多个的字符
 4     fr_content_line = fr.readline()
 5     fr_content_line1 = fr.readline()        #readline()每次读一行,文件对象会记录上次read读到的地方,下次调用就会读下一行
 6     fr_content_line2 = fr.readline()        #注意,read对象记录的读取位置包括全部读取函数读取的位置,再次调用读取函数就会从最后的位置
 7                                             #开始读,如果读完,再次读取就为空
 8     fr_readlines = fr.readlines()       #readlines()会读取多行,默认读全部,
 9     for r_line in fr_readlines:         #for循环将readlines结果不空行打印出来,把readlines()返回列表元素的
删除
10         if r_line[-1:] == '
':         #调试模式下可以看到,'
'只占用了一个字符
11             r_line_rmv = r_line[:-1]        #列表里的字符串类型数据是不可改变的,要使用更改后的字符串就要通过赋值给新的字符串对象
12             print(r_line_rmv)
13         else:
14             print(r_line)
15     fr.close()
16     print(fr_content)
17     print(fr_content_line)
18     print(fr_content_line1)
19     print(fr_content_line2)
20     print(fr_readlines)
21 read()

a模式(append)
1 f = open('test.txt','a',encoding='utf-8')    #a追加模式打开文件
2 fadd = '这是追加的文件内容!!!
'   #写入的内容
3 f.write(fadd)       #write()写入
4 f = close()     #关闭文件


1 file = open('gsf.txt','a+',encoding='utf-8')
2 file.write('
8-18')
3 # read_file = file.read()     #输出为空,'a+'模式不能读read()?
4 file.close()
1 file = open('gsf.txt','r+',encoding='utf-8')
2 read_file = file.read()
3 seek_file = file.seek(80)   #seek(,)第一个参数为读取的长度,第二个参数为读取的位置(0代表从头开始读,1代表从当前位置开始读,2代表从后面开始读)
4 file_tell = file.tell()     #tell()返回当前指针位置,比如这里返回80
5 file.close()
6 print(read_file)

文件拷贝

 1 # 文件拷贝
 2 #1.获得要拷贝的原文件名
 3 old_file = input('输入文件名:')
 4 # 2.设置新的文件名
 5 new_file_name = old_file + '.bk'
 6 # 3.打开新的文件
 7 file_old = open(old_file,'rb')      #用二进制格式读和写可以保证文件原封不动的复制
 8 file_new = open(new_file_name,'wb')
 9 # 4.将老文件内容写到新文件里
10 old_content = file_old.read()
11 file_new.write(old_content)
12 # print(file_new.read())
13 # 5.关闭新老文件
14 file_old.close()
15 file_new.close()

文件重命名和删除操作

1 import os   #导入os模块,和文件相关的函数在这个模块
2 def file_rename():  #文件重命名
3     os.rename('test.txt.bk','test_copy.txt')    #rename()更改文件名字
4 
5 file_rename()
6 
7 def file_remove():  #删除文件
8     os.remove('test_copy.txt')      #如果只写文件名,默认就在当前目录下找文件,找不到就报错,可以用文件的完整路径找其他地方的文件
9 file_remove()

目录的创建和删除

 1 def dir_make():
 2     # os.mkdir(r'‪C:UsersyxDesktoppython_make_file')      #报错,文件名不符合windows规范,OSError: [WinError 123] 文件名、
 3     #            文件路径前加 r 是防止字符转义,防止路径组成特殊符号                                             # 目录名或卷标语法不正确。: 'u202aC:/Users/yx/Desktop/python_make_file'
 4 
 5     os.mkdir(r'‪C:UsersyxDesktoppython_make_file'.strip('u202a'))  #去掉开头的u202a,文件夹(目录)创建成功
 6 dir_make()
 7 
 8 def dir_remove():
 9     os.rmdir(r'‪C:UsersyxDesktoppython_make_file'.strip('u202a'))      #rmdir()删对应路径的文件夹
10 dir_remove()

查看目录文件列表,查看、更改工作目录


 1 def get_dir_list():
 2     dir_list = os.listdir()     #listdir()返回目录下的文件列表,默认为当前目录下
 3     print(dir_list)
 4 get_dir_list()
 5 
 6 def get_cwd():    #current workspace directory -> cwd 当前工作目录
 7     cwd = os.getcwd()       #返回当前的工作目录路径
 8     os.chdir(r'‪C:UsersyxDesktoppython_make_file')      #chdir()更改工作目录,更改工作目录后,所有的操作,
 9                                                             # 比如创建文件、目录,等等操作都会默认在该目录下进行
10     print(cwd)
11 get_cwd()

 循环写入文件

 1 import random
 2 
 3 
 4 def createBoeNo():
 5     boeNo = ['JW']
 6     for i in range(0,10):
 7         j = str(random.randint(0,9))
 8         boeNo.append(j)
 9     boeNo1 = ''.join(boeNo)     #将列表转换为字符串,join函数插入空
10     # print(boeNo1)
11     return boeNo1
12 
13 
14 def writeText():
15     a = 1
16     fw = open('test.txt', 'w')
17     # fw.write(boeNo)
18     while a < 5000:
19         boeNo = createBoeNo()
20         fw.write(boeNo + ','+'importMark' + ',' + 'count' + '
')
21         a += 1
22     fw.close()
23 
24 
25 def clear():
26     f = open('test.txt', 'r+')
27     f.truncate(0)
28     f.close()
29 
30 
31 writeText()
 
原文地址:https://www.cnblogs.com/x991788x/p/13511323.html