打开方式:file object = open(file_name , access_mode, buffering)
1、file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
2、access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读®。
r | 以只读方式打开文件 |
---|---|
rb | 以二进制格式打开一个文件用于只读 |
w | 打开一个文件只用于写入 |
a | 打开一个文件用于追加。新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
3、buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。
readline() 每次只读取一行
readlines()一次性读取文件所有行 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for … in … 结构进行处理。
f.close()
# 第一种方式:必须有关闭文件指令
f = open("../option_files/mail126.txt","r",encoding="utf-8")
lines = f.readlines()
print(lines)
for line in lines:
print(line.split(",")[0])
f.close()
# 第二种方式:可以不带关闭文件指令,完成文件相关操作后,自行关闭文件
with open("../option_files/mail126.txt","r",encoding="utf-8") as f:
lines = f.readlines()
print(lines)
for line in lines:
print(line.split(",")[0])
csv即为逗号分隔值(Comma-Separated Values,CSV),有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)
注意:
CSV文件中第1行是表头行,在读取文件时,第0行是CSV文件中的第2行。
import csv
rows = []
def read_csv(row, col):
with open(r"../option_files/test_date_126.csv","r") as f: #打开文件。 路径是相对路径,一个点代表为当前文件的父目录,两个点就是当前文件的父目录的父目录
reader = csv.reader(f) # 读取结果是一个csv对象,是一个迭代器
print(type(reader))
# print(reader)
next(reader,None) # 返回迭代器的下一个目录,第一个参数是迭代器,第二个参数可选,设置在没有下一个元素时,返回的默认值。如果不设置,又没有下一个元素则会出发stopIteration异常。 此处可以不用,一般配合yiled使用。
for item in reader: # 遍历迭代器
rows.append(item) # 将遍历的值,添加到列表中
print(rows)
return "".join