python判断是否存在

1.python怎么判断文件是否存在

正文 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。

所以最好在做任何操作之前,先判断文件是否存在。 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、pathlib模块。

回到顶部 1.使用os模块 os模块中的os.path.exists()方法用于检验文件是否存在。 判断文件是否存在 import os os.path.exists(test_file.txt)#Trueos.path.exists(no_exist_file.txt)#False 判断文件夹是否存在 import os os.path.exists(test_dir)#Trueos.path.exists(no_exist_dir)#False 可以看出用os.path.exists()方法,判断文件和文件夹是一样。

其实这种方法还是有个问题,假设你想检查文件“test_data”是否存在,但是当前路径下有个叫“test_data”的文件夹,这样就可能出现误判。为了避免这样的情况,可以这样: 只检查文件 import os os.path.isfile("test-data") 通过这个方法,如果文件”test-data”不存在将返回False,反之返回True。

即是文件存在,你可能还需要判断文件是否可进行读写操作。回到顶部 判断文件是否可做读写操作 使用os.access()方法判断文件是否可进行读写操作。

语法:os.access(path, mode) path为文件路径,mode为操作模式,有这么几种: os.F_OK: 检查文件是否存在; os.R_OK: 检查文件是否可读; os.W_OK: 检查文件是否可以写入; os.X_OK: 检查文件是否可以执行 该方法通过判断文件路径是否存在和各种访问模式的权限返回True或者False。 import osif os.access("/file/path/foo.txt", os.F_OK): print "Given file path is exist."if os.access("/file/path/foo.txt", os.R_OK): print "File is accessible to read"if os.access("/file/path/foo.txt", os.W_OK): print "File is accessible to write"if os.access("/file/path/foo.txt", os.X_OK): print "File is accessible to execute" 回到顶部2.使用Try语句 可以在程序中直接使用open()方法来检查文件是否存在和可读写。

语法:open() 如果你open的文件不存在,程序会抛出错误,使用try语句来捕获这个错误。程序无法访问文件,可能有很多原因: 如果你open的文件不存在,将抛出一个FileNotFoundError的异常; 文件存在,但是没有权限访问,会抛出一个PersmissionError的异常。

所以可以使用下面的代码来判断文件是否存在: try: f =open() f.close()except FileNotFoundError: print "File is not found."except PersmissionError: print "You don't have permission to access this file." 其实没有必要去这么细致的处理每个异常,上面的这两个异常都是IOError的子类。所以可以将程序简化一下: try: f =open() f.close()except IOError: print "File is not accessible." 使用try语句进行判断,处理所有异常非常简单和优雅的。

而且相比其他不需要引入其他外部模块。回到顶部3. 使用pathlib模块 pathlib模块在Python3版本中是内建模块,但是在Python2中是需要单独安装三方模块。

使用pathlib需要先使用文件路径来创建path对象。此路径可以是文件名或目录路径。

检查路径是否存在 path = pathlib.Path("path/file") path.exist() 检查路径是否是文件 path = pathlib.Path("path/file") path.is_file()。

2.Python常见文件如何操作?

# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os。

path 模块中的路径名访问函数分隔basename() 去掉目录路径, 返回文件名dirname() 去掉文件名, 返回目录路径join() 将分离的各部分组合成一个路径名split() 返回 (dirname(), basename()) 元组splitdrive() 返回 (drivename, pathname) 元组splitext() 返回 (filename, extension) 元组 信息getatime() 返回最近访问时间getctime() 返回文件创建时间getmtime() 返回最近文件修改时间getsize() 返回文件大小(以字节为单位) 查询exists() 指定路径(文件或目录)是否存在isabs() 指定路径是否为绝对路径isdir() 指定路径是否存在且为一个目录isfile() 指定路径是否存在且为一个文件islink() 指定路径是否存在且为一个符号链接ismount() 指定路径是否存在且为一个挂载点samefile() 两个路径名是否指向同个文件 os。 path。

isdir(name):判断name是不是一个目录,name不是目录就返回false os。path。

isfile(name):判断name是不是一个文件,不存在name也返回false os。path。

exists(name):判断是否存在文件或目录name os。 path。

getsize(name):获得文件大小,如果name是目录返回0L os。path。

abspath(name):获得绝对路径os。path。

normpath(path):规范path字符串形式os。path。

split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在) os。 path。

splitext():分离文件名与扩展名os。path。

join(path,name):连接目录与文件名或目录os。path。

basename(path):返回文件名os。path。

dirname(path):返回文件路径 os模块中的文件操作:os 模块属性linesep 用于在文件中分隔行的字符串sep 用来分隔文件路径名的字符串pathsep 用于分隔文件路径的字符串curdir 当前工作目录的字符串名称pardir (当前工作目录的)父目录字符串名称 1。 重命名:os。

rename(old, new) 2。删除:os。

remove(file) 3。列出目录下的文件:os。

listdir(path) 4。获取当前工作目录:os。

getcwd() 5。改变工作目录:os。

chdir(newdir) 6。 创建多级目录:os。

makedirs(r"c:\python\test") 7。创建单个目录:os。

mkdir("test") 8。删除多个目录:os。

removedirs(r"c:\python") #删除所给路径最后一个目录下所有空目录。 9。

删除单个目录:os。rmdir("test") 10。

获取文件属性:os。stat(file) 11。

修改文件权限与时间戳:os。chmod(file) 12。

执行操作系统命令:os。system("dir") 13。

启动新进程:os。 exec(), os。

execvp() 14。在后台执行程序:osspawnv() 15。

终止当前进程:os。exit(), os。

_exit() 16。分离文件名:os。

path。split(r"c:\python\hello。

py") ——> ("c:\\python", "hello。 py") 17。

分离扩展名:os。path。

splitext(r"c:\python\hello。py") ——> ("c:\\python\\hello", "。

py") 18。获取路径名:os。

path。dirname(r"c:\python\hello。

py") ——> "c:\\python" 19。获取文件名:os。

path。basename(r"r:\python\hello。

py") ——> "hello。py" 20。

判断文件是否存在:os。path。

exists(r"c:\python\hello。 py") ——> True 21。

判断是否是绝对路径:os。path。

isabs(r"。\python\") ——> False 22。

判断是否是目录:os。path。

isdir(r"c:\python") ——> True 23。判断是否是文件:os。

path。isfile(r"c:\python\hello。

py") ——> True 24。判断是否是链接文件:os。

path。islink(r"c:\python\hello。

py") ——> False 25。获取文件大小:os。

path。 getsize(filename) 26。

*******:os。ismount("c:\\") ——> True 27。

搜索目录下的所有文件:os。path。

walk() shutil模块对文件的操作:1。复制单个文件:shultil。

copy(oldfile, newfle) 2。复制整个目录树:shultil。

copytree(r"。\setup", r"。

\backup") 3。删除整个目录树:shultil。

rmtree(r"。\backup") 临时文件的操作:1。

创建一个唯一的临时文件:tempfile。mktemp() ——> filename 2。

打开临时文件:tempfile。TemporaryFile() 内存文件(StringIO和cStringIO)操作[4。

StringIO] #cStringIO是StringIO模块的快速实现模块 1。 创建内存文件并写入初始数据:f = StringIO。

StringIO("Hello world!") 2。读入内存文件数据:print f。

read() #或print f。getvalue() ——> Hello world! 3。

想内存文件写入数据:f。 write("Good day!") 4。

关闭内存文件:f。close() ''' import os import os。

path import unittest import time #import pygame class (unittest。 TestCase):def __init__(self):"""constructor""" def test01(self):print os。

linesep print os。sep print os。

pathsep print os。 curdir print os。

pardir print os。getcwd() print 'unittest here' if __name__ == "__main__":t = () t。

test01() view plainprint? view plainprint? #读文件的写法:#读文本文件:input = open('data', 'r')#第二个参数是默认的,可以不加#读二进制文件:input = open('data', 'rb') #读取所有文件内容:open('xxoo。 。

3.python为什么叫爬虫?

爬虫通常指的是网络爬虫,就是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。因为python的脚本特性,python易于配置,对字符的处理也非常灵活,加上python有丰富的网络抓取模块,所以两者经常联系在一起。

在进入文章之前,我们首先需要知道什么是爬虫。爬虫,即网络爬虫,大家可以理解为在网络上爬行的一只蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛,如果它遇到自己的猎物(所需要的资源),那么它就会将其抓取下来。比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。不容易理解的话其实可以通过下面的图片进行理解:

因为python的脚本特性,python易于配置,对字符的处理也非常灵活,加上python有丰富的网络抓取模块,所以两者经常联系在一起。Python爬虫开发工程师,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。

作为一门编程语言而言,Python是纯粹的自由软件,以简洁清晰的语法和强制使用空白符进行语句缩进的特点从而深受程序员的喜爱。举一个例子:完成一个任务的话,c语言一共要写1000行代码,java要写100行,而python则只需要写20行的代码。使用python来完成编程任务的话编写的代码量更少,代码简洁简短可读性更强,一个团队进行开发的时候读别人的代码会更快,开发效率会更高,使工作变得更加高效。

这是一门非常适合开发网络爬虫的编程语言,而且相比于其他静态编程语言,Python抓取网页文档的接口更简洁;相比于其他动态脚本语言,Python的urllib2包提供了较为完整的访问网页文档的API。此外,python中有优秀的第三方包可以高效实现网页抓取,并可用极短的代码完成网页的标签过滤功能。

python爬虫的构架组成如下图:

1、URL管理器:管理待爬取的url集合和已爬取的url集合,传送待爬取的url给网页下载器;

2、网页下载器:爬取url对应的网页,存储成字符串,传送给网页解析器;

3、网页解析器:解析出有价值的数据,存储下来,同时补充url到URL管理器。

而python的工作流程则如下图:

(Python爬虫通过URL管理器,判断是否有待爬URL,如果有待爬URL,通过调度器进行传递给下载器,下载URL内容,并通过调度器传送给解析器,解析URL内容,并将价值数据和新URL列表通过调度器传递给应用程序,并输出价值信息的过程。)

Python是一门非常适合开发网络爬虫的编程语言,提供了如urllib、re、json、pyquery等模块,同时又有很多成型框架,如Scrapy框架、PySpider爬虫系统等,本身又是十分的简洁方便所以是网络爬虫首选编程语言!

4.python中判断时间间隔的问题有文档1.txt地点时间类型工号

代码有点烂,不过还算能解决问题注释比较详细了# -*- coding: utf-8 -*-import datetime__author__ = 'lpe234'__date__ = '2015-04-26'f = file('1。

txt')file_content = f。readlines()all_lines = len(file_content)def get_(content): """ 递归调用 :param content: :return: """ # 判断当前内容行数是否大于2 if len(content) > 1: line_1 = content[0] line_2 = content[1] # 读取当前内容的第一行 和 第二行,并分别对比内容是否一致 loc1, date1, time1, type1, no1 = line_1。

split() loc2, date2, time2, type2, no2 = line_2。split() # 判断 除了time 以外的数据是否一致 if loc1 == loc2 and date1 == date2 and type1 == type2 and no1 == no2: # 判断时间 是否符合要求 if (datetime。

datetime。strptime(time2, '%H:%M:%S')-datetime。

datetime。strptime(time1, '%H:%M:%S'))。

seconds in range(4): # 符合要求,则打印 print line_1, line_2。 replace(' ', '') # 递归 return get_(content[2:]) else: # 递归 return get_(content[1:]) else: pass# 去掉 第一行 :地点 时间 类型 工号get_(file_content[1:])输出结果:C:Python27python。

exe D:/00/gui/text/1。 py上海 2015-04-24 11:25:03 1 123上海 2015-04-24 11:25:03 1 123北京 2015-04-24 11:25:13 1 127北京 2015-04-24 11:25:15 1 127广州 2015-04-24 11:25:16 2 125广州 2015-04-24 11:25:17 2 125Process finished with exit code 0。

5.python如何判断是否有

方法一:通过异常捕捉来实现逻辑class FooClass:passk = FooClass()try: #do some thing you need print k.attexcept AttributeError as e: #error: has not attribute pass方法二:调用hasattr方法hasattr(object, name)说明:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的)。

参数object:对象。 参数name:特性名称。

>>> hasattr(list, 'append')True>>> hasattr(list, 'add')False方法三:使用dir方法objlist = dir(k)if 'att' in objlist:#do some thing you needprint k.attelse:#error: has not attribute pass。

6.python中判断时间间隔的问题

代码有点烂,不过还算能解决问题

注释比较详细了

# -*- coding: utf-8 -*-

import datetime

__author__ = 'lpe234'

__date__ = '2015-04-26'

f = file('1.txt')

file_content = f.readlines()

all_lines = len(file_content)

def get_(content):

"""

递归调用

:param content:

:return:

"""

# 判断当前内容行数是否大于2

if len(content) > 1:

line_1 = content[0]

line_2 = content[1]

# 读取当前内容的第一行 和 第二行,并分别对比内容是否一致

loc1, date1, time1, type1, no1 = line_1.split()

loc2, date2, time2, type2, no2 = line_2.split()

# 判断 除了time 以外的数据是否一致

if loc1 == loc2 and date1 == date2 and type1 == type2 and no1 == no2:

# 判断时间 是否符合要求

if (datetime.datetime.strptime(time2, '%H:%M:%S')-datetime.datetime.strptime(time1, '%H:%M:%S')).seconds\

in range(4):

# 符合要求,则打印

print line_1, line_2.replace('\n', '')

# 递归

return get_(content[2:])

else:

# 递归

return get_(content[1:])

else:

pass

# 去掉 第一行 :地点 时间 类型 工号

get_(file_content[1:])输出结果:

C:\Python27\python.exe D:/00/gui/text/1.py

上海 2015-04-24 11:25:03 1 123

上海 2015-04-24 11:25:03 1 123

北京 2015-04-24 11:25:13 1 127

北京 2015-04-24 11:25:15 1 127

广州 2015-04-24 11:25:16 2 125

广州 2015-04-24 11:25:17 2 125

Process finished with exit code 0

7.python中= 和 ==的区别

他们之间的区别就是代表的含义有所不同。

一个等号代表的含义是赋值,将某一数值赋给某个变量,比如a=3,将3这个数值赋予给a。

两个等号是判断是否相等,返回True或False,比如1==1。他们是相等的,那么就返回true。1==2,他们是不相等的,那么就返回false。

扩展资料

Python的表达式写法与C/C++类似。只是在某些写法有所差别。主要的算术运算符与C/C++类似。

+, -, *, /, //, **, ~, %分别表示加法或者取正、减法或者取负、乘法、除法、整除、乘方、取补、取余。>>, <<;表示右移和左移。

&, |, ^表示二进制的AND, OR, XOR运算。

>, <, ==, !=, <=, >;=用于比较两个表达式的值,分别表示大于、小于、等于、不等于、小于等于、大于等于。

在这些运算符里面,~, |, ^, &, <<, >>;必须应用于整数。

python判断是否存在

转载请注明出处编程代码网 » python判断是否存在

资讯

python信息

阅读(73)

本文主要为您介绍python信息,内容包括怎么在python里面,用键盘输入信息,经济信息管理专业运用python方面?爱问,python如何根据配置信息连接数据库。input函数,运行之后,就需要用键盘输入:a = input()print(a)运行之后,用键盘输入内容,按下回车键

资讯

python最优化

阅读(83)

本文主要为您介绍python最优化,内容包括Python怎么做最优化,Python的爬虫的问题?<br/>最近自己从很多途径了解到Py,python的需求量真的很大吗?。概观 scipy中的optimize子包中提供了常用的最优化算法函数实现。我们可以直接调用这些函数完

资讯

python模块安装

阅读(92)

本文主要为您介绍python模块安装,内容包括Python模块常用的几种安装方式,Windows系统中如何安装Python扩展模块,python安装gridfs模块的命令是怎么写的。几种情况1.预编译好的exe文件,直接双击安装即可2.rar等包,解压后,从命令行中cd到解压的

资讯

python在mac

阅读(75)

本文主要为您介绍python在mac,内容包括如何在mac上运行python,对于MacbookPro来说,多大内存合适?主要是写Python,Python在国内前景怎么样?Python语言有什么优势,国内有。1.将文件首行改为[python] view plaincopy#!/usr/bin/env python2.将

资讯

python安装模块

阅读(83)

本文主要为您介绍python安装模块,内容包括如何制作python安装模块,Windows系统中如何安装Python扩展模块,python安装gridfs模块的命令是怎么写的。Python模块的安装方法: 1. 单文件模块:直接把文件拷贝到$python_dir/lib 2. 多文件模块,带setu

资讯

运维python

阅读(101)

本文主要为您介绍运维python,内容包括python在系统运维中都应用,推荐几本Python自动化运维的书籍?谢谢,学习Python,可以做Linux运维吗?。我更喜欢用“系统管理”来形容“运维”这项工作。运维听起来是偏执行的一项工作。python在系统管理上

资讯

python获取路径

阅读(80)

本文主要为您介绍python获取路径,内容包括python中怎么获取工作路径,Python常见文件如何操作?,如何找一个初级Python开发工作?。# -*-coding:utf8 -*- Python常见文件操作示例 os。path 模块中的路径名访问函数分隔basename()

资讯

python批量查询

阅读(78)

本文主要为您介绍python批量查询,内容包括python列表,如何批量查找替换,python如何忽略文件的第一行,然后统计剩下部分中某个字符串的?,在ARCGIS中如何实现用PYTHON批量创建表字?在ARCGI。f = open("foo。txt") ? ? ? ? ? ? # 打开文件 line = f。r

资讯

python的filter

阅读(79)

本文主要为您介绍python的filter,内容包括python中的filter函数怎么用,FILTERMIST在市场上的优势是什么?,VF达人帮找找错setfilterto&findstr那一行提?。python filter内建函数filter函数是python内建函数,可以操作任何可迭代类型,如list,tup

资讯

python中.和_

阅读(81)

本文主要为您介绍python中.和_,内容包括python中""与&#39;&#39;的区别,怎样在python中调用c++的显示窗口函数从而生成一个窗?怎样爱问知,python中的()有什么区别。python中“ ”与‘ ’在表示字符串时是没有区别的在输出时,输出内容有“ ”(

资讯

bpython

阅读(80)

本文主要为您介绍bpython,内容包括python中b&#39;怎么用,python中b&#39;怎么用,python和$的区别。python 中 b怎么用\b在正则中表示单词间隔。但由于\b在字符串里本身是个转义,代表退格。r是得到字符本身。也就是说\b这两个字符

资讯

python编程pdf

阅读(79)

本文主要为您介绍python编程pdf,内容包括python对pdf分类,怎么用python进行web开发,跪求《python学习手册》(第五版)pdf中文版!。1。python入门推荐老齐《从零开始学python》,《python简明教程》,这两本书很适合小白入门(像我一样长期徘徊在编

资讯

dictionaryinpython

阅读(81)

本文主要为您介绍dictionaryinpython,内容包括Python中的字典是什么?,英语单选题Thedictionarywasnotin,pythondictionary的问题。字典(Dictionary)字典也是Python语言中经常使用的一种数据类型。跟列表类似,字典是另外一种可存储任意类型的数

资讯

pythononqt

阅读(78)

本文主要为您介绍pythononqt,内容包括Python在国内前景怎么样?Python语言有什么优势,国内有,QT做成的聊天系统是在什么环境下运行的?,什么是python语言的及其应用领域。据我所知和工作接触到的,目前的现状是python广泛应用在网络编程、UNIX(

资讯

python信息

阅读(73)

本文主要为您介绍python信息,内容包括怎么在python里面,用键盘输入信息,经济信息管理专业运用python方面?爱问,python如何根据配置信息连接数据库。input函数,运行之后,就需要用键盘输入:a = input()print(a)运行之后,用键盘输入内容,按下回车键

资讯

python最优化

阅读(83)

本文主要为您介绍python最优化,内容包括Python怎么做最优化,Python的爬虫的问题?<br/>最近自己从很多途径了解到Py,python的需求量真的很大吗?。概观 scipy中的optimize子包中提供了常用的最优化算法函数实现。我们可以直接调用这些函数完

资讯

python模块安装

阅读(92)

本文主要为您介绍python模块安装,内容包括Python模块常用的几种安装方式,Windows系统中如何安装Python扩展模块,python安装gridfs模块的命令是怎么写的。几种情况1.预编译好的exe文件,直接双击安装即可2.rar等包,解压后,从命令行中cd到解压的

资讯

python在mac

阅读(75)

本文主要为您介绍python在mac,内容包括如何在mac上运行python,对于MacbookPro来说,多大内存合适?主要是写Python,Python在国内前景怎么样?Python语言有什么优势,国内有。1.将文件首行改为[python] view plaincopy#!/usr/bin/env python2.将

资讯

python安装模块

阅读(83)

本文主要为您介绍python安装模块,内容包括如何制作python安装模块,Windows系统中如何安装Python扩展模块,python安装gridfs模块的命令是怎么写的。Python模块的安装方法: 1. 单文件模块:直接把文件拷贝到$python_dir/lib 2. 多文件模块,带setu

资讯

运维python

阅读(101)

本文主要为您介绍运维python,内容包括python在系统运维中都应用,推荐几本Python自动化运维的书籍?谢谢,学习Python,可以做Linux运维吗?。我更喜欢用“系统管理”来形容“运维”这项工作。运维听起来是偏执行的一项工作。python在系统管理上

资讯

python获取路径

阅读(80)

本文主要为您介绍python获取路径,内容包括python中怎么获取工作路径,Python常见文件如何操作?,如何找一个初级Python开发工作?。# -*-coding:utf8 -*- Python常见文件操作示例 os。path 模块中的路径名访问函数分隔basename()

资讯

timepython

阅读(69)

本文主要为您介绍timepython,内容包括python中time怎么用?,python中time怎么用?我想做一个计时器能显现出来,比方说爱问知识,python的需求量真的很大吗?。作为一名从业多年的IT人,我来回答一下这个问题。Python语言伴随着大数据和人工智能的