(一)文件的打开与关闭
一、文件的打开方式
f=open(name,mode)
具体说明:
name:文件名或者包含完整的路径和文件名
mode:打开文件的操作方式
打开方式 | 说明 |
---|---|
“r” | 只读方式(若文件不存在,则返回FileNotFoundError) |
“w” | 写方式(若文件不存在,则创建文件,若存在则覆盖文件原有内容) |
“x” | 创建方式(若文件不存在则创建文件,若存在则返回FileNotFoundError) |
“a” | 追加方式(若文件不存在则创建文件,若存在则在文件内容最后追加新内容) |
“b” | 二进制文件方式 |
“t” | 文本文件方式 |
“+” | 与r/w/x/a一同使用,在原功能基础上增加具有读写功能 |
注:前四个与后三个可以组合使用。
二、文件的关闭方式
1、使用with语句:
代码块执行完毕时,会自动关闭文件
with open('test.txt', 'r') as file:
#读取文件内容
f = file.read()
print(f)
# 文件在这里已经被自动关闭
2、使用close()方法:
file = open('test.txt', 'r')
# 读取文件内容
f = file.read()
print(f)
file.close()
(二)文件的读取操作
方法 | 说明 |
---|---|
read(size) | 从文件中读入整个文件内容,可以选择读取长度size(换行符\n也会自动识别) |
readline(size) | 从文件中读取一行内容,括号里可以填该行读入字符串长度size |
readlines(hint) | 从文件中读入所有行,以行为元素形成一个列表(读取hint行) |
seek(offset) | 改变当前文件操作指针的位置,offset的值:以0为开头,1为当前位置,2为结尾 |
1、读取文本文件
# 读取文件(1)
with open('test.txt', 'r') as file:
data = file.read()
print(data)
# 读取文件(2)
a=open('test.txt', 'r').read()
print(a)
2、读取CSV文件
import csv
# 读取CSV文件
with open('test.csv', 'r') as csvfile:
csv_reader = csv.reader(csvfile)
for row in csv_reader:
print(row)
#####3、读取Excel文件
import xlwt#创建和写入Excel文件
import xlrd#读取Excel文件中的数据
book = xlwt.Workbook(encoding="utf-8")#创建表格对象
sheet = book.add_sheet('sheet_test')#添加表
wb = xlrd.open_workbook(r"test.xls")
for s in wb.sheets():
for i in range(s.nrows):
print(s.row(i)[0].value, end=' ')
print(s.row(i)[1].value, end=' ')
print(s.row(i)[2].value, end=' ')
print(s.row(i)[3].value, end=' ')
print(s.row(i)[4].value, end=' ')
print()
4、从Word文件读取
f = open("test.docx", 'r')
list = f.readlines()
for s in list:
print(s[:-1], end=' ')
f.close()
5、从数据库中读取
import sqlite3
# 连接到SQLite数据库(假设有一个名为 test.db 的数据库)
conn = sqlite3.connect('test.db')
# 创建一个游标对象
cursor = conn.cursor()
# 执行SQL查询语句
cursor.execute("SELECT * FROM users")
# 检索所有行
rows = cursor.fetchall()
# 打印每一行
for row in rows:
print(row)
# 关闭连接
conn.close()
文件的写入操作
1、写入文本文件
# 写入文件
with open('test.txt', 'w') as file:
file.write("Hello,my name is abc.")
2、写入CSV文件
import csv
data = [['1', '2', '3'],
['4', '5', '6'],
['7', '8', '9']]
with open('test.csv', 'w', newline='') as csvfile:
csv_writer = csv.writer(csvfile)
csv_writer.writerows(data)
3、写入Excel文件
#例如绘制表头
sheet.write(0, 0, '学号')#指定位置写入数据
sheet.write(0, 1, '姓名')
sheet.write(0, 2, '性别')
4、写入Word文件
f = open("test.docx", "w+")
for i in range(0, 5):
f.write("华中农业大学"+str(i+1)+'\n')
f.close()
5、写入数据库
import sqlite3
# 连接到SQLite数据库(假设有一个名为 test.db 的数据库)
conn = sqlite3.connect('test.db')
# 创建一个游标对象
cursor = conn.cursor()
# 执行SQL插入语句
cursor.execute("INSERT INTO users (name, age, occupation) VALUES (?, ?, ?)", ('abc', 19, 'Student'))
# 提交更改
conn.commit()
# 关闭连接
conn.close()