Python 文件操作¶
CSV 文件读写¶
写入数据¶
import csv
with open('target.csv', 'w', encoding='utf-8', newline='')as fl:
writer = csv.writer(fl)
writer.writerow((1, 2, 3))
writer.writerow((4, 5, 6))
Hint
如果不加 newline=''
的话,目标文件将会写一行空一行。
读取数据¶
with open('target.csv', encoding='utf-8', newline='')as fl:
reader = csv.reader(fl)
for row in reader:
print(row)
控制台输出
['1', '2', '3']
['4', '5', '6']
Excel 文件读写¶
写入数据¶
import openpyxl
filename = 'target.xlsx'
wb = openpyxl.Workbook()
ws = wb.active
ws.append([1, 2, 3])
ws.append([4, 5, 6])
wb.save(filename)
读取数据¶
import openpyxl
filename = 'target.xlsx'
wb = openpyxl.load_workbook(filename)
ws = wb.active
for row in ws.iter_rows():
print([cell.value for cell in row])
# 另一种常用的读取方式,用来读取特定的列的值
# 上面的这种感觉多数情况下要去掉第一行标题行
# 需要增加一些额外的代码。可以直接用 enumerate
# for row in range(2, ws.max_row + 1):
# ws.cell(row=row, column=xxx)
wb.close()
[1, 2, 3]
[4, 5, 6]
Json 文件读写¶
将字典数据写进 json 文件¶
import json
month = {
'Jan': '一月',
'Feb': '二月',
'Mar': '三月'
}
with open('target.json', 'w', encoding='utf-8')as fl:
json.dump(month, fl, indent=4, ensure_ascii=False)
打开 target.json 文件,我们可以看到文件中的内容
{
"Jan": "一月",
"Feb": "二月",
"Mar": "三月"
}
Note
ensure_ascii=False
可以防止写进文件之后中文乱码,indent=4
将缩进设置为 4 比较符合我们平常的观察习惯。
读取 json 文件内容¶
with open('target.json', encoding='utf-8')as fl:
data = json.load(fl)
print(data)
{'Jan': '一月', 'Feb': '二月', 'Mar': '三月'}
创建文件夹¶
创建文件夹的两个命令
第一个命令:
os.mkdir(path)
第二个命令:
os.makedirs(path)
os.mkdir(path)
这个语句可以创建一个文件夹,当 path 有多层路径时,只要当中有一层路径是不存在的话,就会产生异常。
os.makedirs(path)
这个语句可以创建一个文件夹,当 path 有多层路径时,无论有多少层,该语句会一直创建知道最后一层文件夹创建完成。
两个命令有这不同的应用场景,自己使用时很容易知道在什么时候用哪个比较好。但是要总结,一时间却不知道该如何说起。
复制,重命名,删除文件和文件夹¶
import os
improt shutil
# 复制文件
shutil.copy(src, dst)
# 复制非空文件夹
shutil.copytree(src, dst)
# 移动,重命名文件(夹)
shutil.move(src, dst)
# 删除文件
os.remove(path)
# 删除非空文件夹
shutil.rmtree(path)
Note
在使用删除命令时需要特别小心,os, shutil 在删除目标是后台删除,没有去到回收站,无法恢复!!!使用这个最好保证原来的数据有备份,随时可以重来。有个第三方包 send2trash 可以将删除的对象送到回收站的,需要的话可以看一下这个包。