一:读取txt文件
1.1、文件的处理过程
一般的文件处理过程
(1)、打开文件:open()函数
(2)、读取/写入文件:read()、readline()、readlines()、write()等。
(3)、对读取的数据进行处理
(4)、关闭文件:close()。
对文件操作之前需要用open()函数打开文件,打开之后将返回一个文件对象(file,对象)。open函数的语法格式如下:
file_object = open(file_name[,access_mode = "r",buffering = -1])
其中file_object为打开的对象;file_name是包含要打开的文件名路径(绝对路径,或是相对路径)的字符串,包含路径名及扩展名。其中一个可选的参数access_mode是打开模式,默认值为“r“,通常有r,w,a,几种模式,表示只读、只写和追加;另一个可选的参数buffering表示带打开文件的缓冲模式。
方法 | 描述 |
read([size]) | 读取文件所有内容,返回字符串类型,参数size表示读取的数量,以byte为单位,可以省略 |
readline([size]) | 读取文件一行的内容,以字符串形式返回,若定义了size,则读出一行的一部分 |
readlines([size]) | 读取所有的行到列表里面[line1,line2......linen](文件每一行是list的一个成员),参数size表示读取内容的长度 |
读取txt文件
所读取的txt文件内容如下并且放在相应的目录下:
#有这样一位诗人。他的诗,让世界上无数人,走出消极,甚至治愈了一个名族的痛。
#他就是,诗人之王泰戈尔。
#下面是泰戈尔的一些经典语录
1、生如夏花之绚烂,死如秋叶之静美
2、眼睛为她下着雨,心却为她打着伞,这就是爱情。
-
-
3、世界与痛吻我,我却报之以歌。
4、###
5、当你为错过太阳而哭泣的时候,你也要再错过群星了。
#
-
6、我们把世界看错,反说它欺骗了我们。
-
7、不要着急,最好的总会在最不经意的时候出现
方法一:
f = open("data//泰戈尔的诗a.txt",mode = 'r',encoding='utf-8')
content = f.read()
print(content)
f.close()
方法二:
f = open("data//泰戈尔的诗a.txt",mode = 'r',encoding='utf-8')
content = f.readlines()
print(content)
f.close()
跳过文件中的注释内容和缺失值。
def skip_header(f):
line = f.readline()
while line.startswith('#'):
line = f.readline()
return line
def process_file(f):
line = skip_header(f).strip()
print(line)
for line in f:
if line.startswith("-") or line.startswith("#"):
line = f.readline()
line = line.strip()
print(line)
input_file = open("data//泰戈尔的诗a.txt",mode = 'r',encoding='utf-8')
process_file(input_file)
input_file.close()
def skip_header(f):
line = f.readline()
while line.startswith('#'):
line = f.readline()
return line
def process_file(f):
line = skip_header(f).strip()
print(line)
for line in f:
while line.startswith("-") or line.startswith("#"):
line = f.readline()
line = line.strip()
print(line)
input_file = open("data//泰戈尔的诗a.txt",mode = 'r',encoding='utf-8')
process_file(input_file)
input_file.close()
二:csv文件和写入:
python内置了csv模块,import csv之后就可以读取csv文件了。
读取csv文件
import csv
with open("students.csv","r") as f:
reader = csv.reader(f)
rows = [row for row in reader]
for item in rows:
print(item)
文件的写入:
import csv
content = [['0','hanmeimei','23','81'],
['1','mayi','18','99'],
['2','jack','21','89']]
f = open("test.csv","w",newline = '')
#如果不加newline = '',就会出现空行
content_out = csv.writer(f)
#生成writer对象存储器
for con in content:
content_out.writerow(con)
f.close()