化身天使的博客

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命令

  1. 查看某个文件指定行以后的内容

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 )                #打印出识别的内容

#还可进行二值化处理

posted @ 2021-08-07 19:58  化身天使  阅读(60)  评论(0)    收藏  举报