python学习笔记第6章:系统与文件操作
文件读取
readline() 读取一行
readlines() 读取全部,读到列表
read() 读取全部,读到字符串
6.1手动打开关闭文件
src = r‘/usr/local/abc.txt’ #定义路径字符串
f = open(src,’r’) 以只读模式打开文件abc.txt,f是文件信息
f.write(‘ha ha ha’) 将ha ha ha写入f
Print(f.read() )
f.close() 关闭文件
6.2自动打开关闭文件
with open(‘path’,r+) as f: 以读+写方式读取文件到f
yw_list = f.readline().strip() 读取文件第一行,并去掉换行等
yw_list = yw_list.split(',') 将字符串文件转为列表
for i in ['分公司', 'c2', 'user_name', 'login_name']: # 删除指定列
yw_list.remove(i)
for i in f:
i = i.split() 遍历每一行,并将字符串转换为列表,默认空格分隔
6.3文件格式
文件格式转换
import pandas as pd
df = pd.read_csv(manager_path) #读取csv文件
df.to_csv(路径,encoding='utf-8',index=None) 转换格式为utf-8
df.columns #获取表头
获取文件格式
import chardet
with open(src, ‘r’) as f: #如果不行试试rb
data = f.read()
print(chardet.detect(data)[“encoding”])
6.4执行系统命令
import subprocess
#run和Popen可互换,旧版本可能没有run
subprocess.Popen("ls") #win系统或linux系统无参数时
subprocess.Popen("ls -l", shell=True)
#linux系统有参数时,不用print,会直接输出
其他选项
stdout=subprocess.PIPE #获取标准输出
stderr=subprocess.STDOUT #获取错误输出
stdin=subprocess.PIPE #标准输入
sout ,serr = res.communicate() #将标准输出赋值给参数
executable= #可指定要用的shell,默认/bin/sh
encoding='utf-8' #指定编码
6.5目录与文件操作
import os
import shutil
修改
os.rename(old_path,new_path) #重命名文件或目录
os.renames(old, new) #递归地重命名目录或文件
删除
os.remove(‘path’) 删除文件,不能删除目录,文件不存在会报错
os.path.exists(‘文件名’) 检查文件或路径是否存在,bool型
os.unlink(‘path’) 同上,不能删除正在使用的文件
os.rmdir(path) 删除空目录
os.removedirs(path) 删除目录及子目录
新建
os.mkdir(path[, mode]) 新建目录
信息查看
os.getcwd() #当前所在目录
os.path.getsize(src) #指定文件大小
os.stat(path) #获取指定路径的信息
路径
os.path.abspath(‘文件名’) 获取文件的绝对路径
os.path.join(‘路径’,’文件名’) 拼接路径和文件名, 或许能用列表
判断
os.path.exists(src) #检查文件或路径是否存在,bool型
os.path.isdir(src) #指定路径是否是文件夹
移动
shutil.move("文件名","新路径")
shutil.move("D:/a.pdf", "D:/past/")
复制
shutil.copyfile("oldfile","newfile") #复制文件
shutil.copy("src1","src_new") #复制文件夹
遍历
#遍历多层目录
src = r’xxx’
for root,dirs,files in os.walk(src):
for file in files:
if file.endswith(‘.pdf’): #按文件类型筛选
os.path.join(root, file) #拼接得到完整路径
#遍历单层
import os
src = 'E:\data' #填写路径
for s in os.listdir(src): #listdir()获取路径内全部文件到列表中
print(s)
6.6linux命令
- 查看某个文件指定行以后的内容
tail -n +2 test.sh #查看test.sh 从第二行开始到最后的内容
6.7图片识别
安装tesseract-ocr和中文包tessdata
pyocr pytesseract #两者二选一, 这几个用于图片识别
pillow #用于图片加载, 处理
from PIL import Image
from pyocr import tesseract
im = Image.open(src)
im = im.convert(‘L’) #L转为黑白模式,其它选项位图,RGB等
im.save(‘temp.png’) #保存图片
code = tesseract.image_to_string(im) #识别图片中的字符
print(code ) #打印出识别的内容
#还可进行二值化处理

浙公网安备 33010602011771号