专栏首页公众号:googpy文件处理一直在路上

文件处理一直在路上

一直输出python干货,是我开这个公众号的初衷,我会把这条道路坚持走到底,也希望我写的东西对你有一点作用。我把自己每天学习python时遇到的各种问题记录下来,分享给大家,避免入门的小伙们入门走弯路。

1. from __future__ import division

导入未来的支持语言特征中division(精确除法),当我们在程序中没有导入该特征时,“/”操作符执行的只能是整除,也就是取整数,只有当我们导入division(精确算法)以后,“/”执行的才是精确算法。

上面这段话是什么意思呢?用一个例子来解释一下。

Python里的除号默认是整除

3/2

1

那么,加上了上面那一段后,除号就变成了正常的小数除法了

from __future__ import division print(3/2)

1.5

2.文件处理入门

如何统计某一路径下文件夹和文件?比如,我的电脑上安装的是python3.7,那么搜索整个py3.7下面的所有目录(包括子目录),里面的所有的文件。

根据题目要求,先把目录下的全部文件和目录列出,若是子目录,就继续寻找该目录下的子文件,然后不断重复刚才的过程,因为我们不知道有多少层嵌套的子目录,最好用递归。

大家先看一下我写的代码。

#列出目录下所有的文件和子目录内的文件 def listFiles(path='.'): #传入路径,默认值为当前目录 if not os.path.exists(path): #判断是否有效目录 print('path error') return None file=' ' try: for file in os.listdir(path): #列出目录下所有文件和目录 filepath=os.path.join(path,file) #构造全路径文件 if os.path.isdir(filepath): #判断是否为目录 print(filepath) #打印目录 listFiles(path=filepath) #继续递归子目录 elif os.path.isfile(filepath): #判断是否为文件 print(filepath) getFileSize(filepath) #获得文件大小 except TypeError: #若出错,打印出错的文件 print(file)

第二中解法有点骚,大家也看看:

import os DIR = 'D:/Program Files/python37' #要统计的文件夹 print('dirnum:',len([name for name in os.listdir(DIR) if os.path.isdir(os.path.join(DIR,name))])) print('filenum:',len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR,name))])) #打开文件 path = 'D:/Program Files/python37' dirs = os.listdir(path) #输出所有文件和文件夹 for file in dirs: print(file)

Python中对文件系统的访问大多是通过os模块实现的,我们需要熟练掌握,通过编写上面的代码,总结一下常见的用法和技巧。

假设有一个文件路径

path='/users/Python/Data/info.txt'

1)获得路径

print os.path.dirname(path)

>>/users/Python/Data

2)分割文件名

print os.path.basename(path)

>>info.txt

3)分割文件的后缀

print os.path.split(path)

>>('/users/Python/Data', 'info.txt')

判断是否为文件或者目录

在文件处理的时候,特别是递归处理目录下的多个文件或者嵌套子目录的时候,要先判断一下这个是文件还是目录。

举例说明,假设我们有一个这样的目录结构:

|---test01--------

|---test02--------

|---demo_file.py—

判断是否为文件

print os.path.isfile('test01')

>>False

print os.path.isfile('demo_file.py')

>>True

判断是否为目录

print os.path.isdir('test01')

>>True

判断文件或者目录是否存在

print os.path.exists('demo_file.py')

>>True

print os.path.exists('test01')

>>True

细心的小伙伴们还注意到上面例子的代码中还涉及异常处理,这部分的内容我放到下次再详细介绍,现在我们刚刚入门,不要贪多,应该稳扎稳打。

本文分享自微信公众号 - googpy(googpy),作者:stormwen

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一份真实的Python面试题

    自学Python已有一段时间了,就想着找份面试题来检验一下自己的学习情况,今天就和大家分享一份自己从网上找到的货真价实的Python面试题,每道题目看似简单,但...

    stormwen
  • 无重复字符的最长子串

    Python一个最大的特点是包含的函数很多,如果我们直接去死记硬背,效果肯定很差。所以,我们可以结合题目来学习函数,把每道题中的函数总结出来,这样学起来既不会枯...

    stormwen
  • 带你认识优秀的python代码

    有一串长的字符串names = "LI XIA , ZHAO MING ,LAO WANG *,DA XIONG >,LI MEI MEI, CHANG JIA...

    stormwen
  • python获取当前目录路径和上级路径

    在使用python的时候总会遇到路径切换的使用情况,如想从文件夹test下的test.py调用data文件夹下的data.txt文件:

    py3study
  • python下基于图片的文字识别与获取

    上篇文章了解了基于pyautoGUI库的元素识别,这次又遇到一个问题:桌面应用程序做自动化测试时,无法识别到页面元素,且页面的元素,每运行一次都会变动(累计增加...

    用户6367961
  • Python:目录和文件的操作模块os.path和OS常用方法

    1、目录和文件的操作模块os.path,在使用之前要先导入:import os.path。它主要有以下几个重要的功能函数:

    yaohong
  • python3获取文件目录和文件

    py3study
  • Python3 操作 HDFS

    py3study
  • Python 学习入门(12)—— 文件

    python进行文件读写的函数是open或file: f = open(filename, mode)

    阳光岛主
  • python 下利用os模块创建目录以及巧妙使用if not os.path.exits()创建

    学到老

扫码关注云+社区

领取腾讯云代金券