文件读取_python学习笔记

文件读取

  • 1. txt读写
    • 1.1 写txt
    • 1.2 读txt
      • 1.2.1 用read()方法读取txt
      • 1.2.2 用readLine()方法读取txt
      • 1.2.3 用readLines()方法读取txt
  • 2 读写csv
    • 2.1 以列表形式写csv
      • 2.1.1 用writerow()方法写csv
      • 2.1.2 用writerows()方式写csv & 追加写
    • 2.2 以字典形式写csv
    • 2.3 以字典形式读取csv

1. txt读写

1.1 写txt

把python is a tool写入到a.txt

with open("a.txt", "w") as f:
	f.write(str("python is a tool"))

1.2 读txt

1.2.1 用read()方法读取txt

  • read()方法是一次从文本中读取全部内容
with open("a.txt", "r") as f:
	data = f.read()
	print(data)
  • 如果a.txt中是多行数据的话,data打印出来也是多行数据
    • a.txt中是
      111111
      22222
      33333
    • 打印出来是
      111111
      22222
      33333

1.2.2 用readLine()方法读取txt

  • readLine()一次读取一行内容,以字符串的形式返回
with open("a.txt", "r") as f:
	data = f.readLine()
	print(data)
  • 如果a.txt中是多行数据的话,data打印出来是一行数据
    • a.txt中是
      111111
      22222
      33333
    • 打印出来是
      111111

1.2.3 用readLines()方法读取txt

  • readLines()读取txt中的所有行,以列表的形式返回,但是会读取到换行符
with open("a.txt", "r") as f:
	data = f.readLines()
	print(data)
  • 如果a.txt中是多行数据的话,data打印出来是列表

    • a.txt中是
      111111
      22222
      33333
    • 打印出来是
      [‘111111\n’, ‘22222\n’, ‘33333\n’]
  • 使用strip()方法来去除换行符

with open("a.txt", "r") as f:
	data = f.readLines()
	for line in data:
		print(line.strip('\n'))
  • a.txt中是
    111111
    22222
    33333
  • 打印出来是
    111111
    22222
    33333

2 读写csv

2.1 以列表形式写csv

2.1.1 用writerow()方法写csv

  • writerow()方法把数据以列表的形式写入csv,每次写入的是一个列表
  • 如果open()的newline参数不设置为"",会出现csv中写一行空一行的情况
import csv

# csv的文件头
fileHeader = ['name', 'age', 'score']
# csv的数据
d1 = ['小明', 20, 90]
d2 = ['小李', 18, 89]
d3 = ['小王', 21, 91]
# 写入数据
csvFile = open("b.csv", "w", newline = "")
writer = csv.writer(csvFile)
# 以列表的形式传入函数
writer.writerow(fileHeader)
writer.writerow(d1)
writer.writerow(d2)
writer.writerow(d3)

csvFile.close()

csv中的数据如下

name age score
小明 20 90
小李 18 89
小王 21 91

2.1.2 用writerows()方式写csv & 追加写

  • writerows()方法每次可以写入多行数据
  • 把open()中的w改成a,可以实现追加写
import csv

# csv的文件头
fileHeader = ['name', 'age', 'score']
# csv的数据
d1 = ['小明', 20, 90]
d2 = ['小李', 18, 89]
d3 = ['小王', 21, 91]
# 写入数据,把w改成a,就可以实现追加写
csvFile = open("b.csv", "w", newline = "")
writer = csv.writer(csvFile)
# 每次写入多个列表
writer.writerows([fileHeader, d1, d2, d3]) 

csvFile.close()

csv中的数据如下

name age score
小明 20 90
小李 18 89
小王 21 91

2.2 以字典形式写csv

  • DircWriter()设置csv可以按照字典的形式写csv
    第一种方式写表头,用writer.writeheader()
import csv

# csv的文件头
fileHeader = ['name', 'age', 'score']
# DictWriter设置以字典形式写csv,这里也设置了表头fileHeader,但是还没把表头写入csv
writer = csv.DictWriter(csvFile, fileHeader)
# 将表头写入csv,writeheader()方法没有参数,是因为上一步已经在DictWriter()里设定了表头参数fileHeader
writer.writeheader()
# 将数据以字典的形式写入csv
writer.writerow({"name":"小明", "age": 20, "score": 90})
writer.writerow({"name":"小李", "age": 18, "score": 89})
writer.writerow({"name":"小王", "age": 21, "score": 91})

csvFile.close()

csv中的数据如下

name age score
小明 20 90
小李 18 89
小王 21 91

第二种方式写表头

import csv

# csv的文件头
fileHeader = ['name', 'age', 'score']
# DictWriter设置以字典形式写csv,这里也设置了表头fileHeader,但是还没把表头写入csv
writer = csv.DictWriter(csvFile, fileHeader)
# 第二种方式 将表头写入csv
writer.writerow(dcit(zip(fileHeader, fileHeader)))
# 将数据以字典的形式写入csv
writer.writerow({"name":"小明", "age": 20, "score": 90})
writer.writerow({"name":"小李", "age": 18, "score": 89})
writer.writerow({"name":"小王", "age": 21, "score": 91})

csvFile.close()

2.3 以字典形式读取csv

  • 用DictReader()方法,以字典形式读取csv内容
  • b.csv中的数据如下
name age score
小明 20 90
小李 18 89
小王 21 91
  • 读取csv表头
import csv

csvFile = open("b.csv", "r")
csvReader = csv.DictReader(csvFile)
print(csvReader.fieldnames)

打印出来是列表[‘name’, ‘age’, ‘score’]

  • 读取csv数据,以字典形式
import csv

csvFile = open("b.csv", "r")
csvReader = csv.DictReader(csvFile)
for row in csvReader:
	print(row)

打印出来是
{‘name’:‘小明’,‘age’:‘20’, ‘score’:‘90’}
{‘name’:‘小李’,‘age’:‘18’, ‘score’:‘89’}
{‘name’:‘小王’,‘age’:‘21’, ‘score’:‘91’}

你可能感兴趣的:(python,python)