1、文件读写笔记

(1)打开和关闭文件

open 函数

你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。

语法:

file object = open(file_name [, access_mode][, buffering])

各个参数的细节如下:

  • file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
  • access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
  • buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

不同模式打开文件的完全列表:

模式描述
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

下图很好的总结了这几种模式:

close()函数

close() 方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误。 close() 方法允许调用多次。

当 file 对象,被引用到操作另外一个文件时,Python 会自动关闭之前的 file 对象。 

语法:

fileObject.close()

(2)读、写文件

read()方法

read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

语法:

fileObject.read([count]) #从文件开头开始读,如果没有传入 count 的话一般会直接读到文件末尾
方法 说明
read() 按字节读取
readline() 按行读取,每次读一行
readlines() 一次读取所有内容,并按行返回列表

 

 

 

 

 

write()方法

write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

write()方法不会在字符串的结尾添加换行符('\n'):

语法:

fileObject.write(string)  #把string写入到被打开文件内容

(3)重命名和删除文件

在使用这两个功能之前要导入 os 模板(import os

重命名语法:

os.rename(current_file_name, new_file_name)

删除语法:

os.remove(file_name)

(4)File对象的属性

file函数用open来创建,打开一个文件可以得到它的相关信息:

属性描述
file.closed 返回true如果文件已被关闭,否则返回false。
file.mode 返回被打开文件的访问模式。
file.name 返回文件的名称。
file.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。
file.next 返回文件下一行
file.write(str) 将str写入文件,返回str的字符长度

2、读入两个文件并存为csv形式,把优秀变成90分,良好变成80分,及格变成60分,没有交的0分

原文件内容:

 

 修改并存为csv形式:

Original = ['优秀','良好','合格','不合格']
Change = ['90分','80分','60分','0分']
f = pd.read_excel("D:\\桌面\\pytest\\Python成绩登记信计.xlsx")
for index in range(len(f.index)):
    for i in range(4):
        f.iloc[index] = f.iloc[index].replace(Original[i],Change[i])
f.to_csv("D:\\桌面\\pytest\\Python成绩登记信计.csv",index = False,header=1)

3、把上述csv格式文件转换为html文件:

 

fo = pd.read_csv("D:\\桌面\\pytest\\Python成绩登记信计.csv")
fo.to_html("D:\\桌面\\pytest\\Python成绩登记信计.html",index = False,header=1)

 

 

4、运用Python CGI把上面的csv格式文件,用网页显示并截屏:

 

 

 

posted on 2020-05-25 19:12  叫你一声你敢应吗  阅读(137)  评论(0编辑  收藏  举报