python查找文件
1. python如何查找以数字命名的文件
遍历文件夹下找到所有文件
判断当前目录下文件的文件名是否是纯数字的,然后加入到列表中输出。
importos
num_filelist=[]
forroot,dirs,filesinos.walk(r"E: est"):
fortmpinfiles:
(shotname,extension)=os.path.splitext(tmp)
ifshotname.isalnum():
num_filelist.append(os.path.join(root,tmp))
printnum_filelist
2. 请教Python关于找到文件并引用
一、Python查找模块的路径
运行Python应用或引用Python模块,Python解释器要有一个查找的过程。可以通过设置一个环境变量PYTHONPATH为Python增加一个搜索路径,以方便查找到相关Python模块(不同的操作系统环境变量的设置稍有不同,默认以下都是WIndows环境),这与众多应用程序需要设置一个系统环境变量的道理是一样的。在命令行中可以通过以下命令设置:
C:\Users\Administrator>set PYTHONPATH=E:/Project/Python/MoleAndPackage/
进入Python环境后可以,通过Python的sys.path属性获得当前搜索路径的配置,可以看到之前我们设置的路径已经在当前搜索路径中了。
C:\Users\Administrator>pythonPython 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32Type "help", "right", "credits" or "license" for more information.>>> import sys>>> sys.path['', 'E:\\Project\\Python\\MoleAndPackage', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python\\DLLs', 'C:\\Python\\lib', 'C:\\Python\\lib\\plat-win', 'C:\\Python\\lib\\lib-tk', 'C:\\Python', 'C:\\Python\\lib\\site-packages']>>>
也可以通过sys模块的append方法在Python环境中增加搜索路径。
>>> sys.path.append("E:\\Project\\Python\\MoleAndPackage2")>>> sys.path['', 'E:\\Project\\Python\\MoleAndPackage', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python\\DLLs', 'C:\\Python\\lib', 'C:\\Python\\lib\\plat-win', 'C:\\Python\\lib\\lib-tk', 'C:\\Python', 'C:\\Python\\lib\\site-packages', 'E:\\Project\\Python\\MoleAndPackage2']>>>
二、Python中的模块和包
前面已经提到每个.py文件都是可以认为是一个Python模块,.py文件中可以包含类、方法、变量和常量(Python还没有严格意义上的常量,只是约定大写的变量作为常量),文件内也可以直接写所有的逻辑语句并在加载时从上之下直接执行,这与其他解释型语言是类似的。例如我们选择在文件夹MoleAndPackage中创建一个文本文件person.py文件即创建了一个简单的Python模块,其内容如下:
# -*- coding: utf-8 -*-ID = 1name = "This person"print namedef say(something):print name,'says', something
那么接下来我们就可以在Python环境中执行person.py。我们可以直接像执行一个批处理文件那样执行person.py,在cmd命令行输入:
Python E:/Project/Python/MoleAndPackage/person.py
本质上任何一个Python应用的入口模块都是这样被执行的(像C#和Java中的main函数),但是引用一个模块,就要建立运行它的上下文环境。我们先设置一个环境变量PYTHONPATH,以便Python解释器找到person.py模块,然后import person模块,即可访问其中的方法或变量。
C:\Users\Administrator>pythonPython 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32Type "help", "right", "credits" or "license" for more information.>>> import personThis person>>> person.say("hello")This person says hello>>> print person.nameThis person>>>
Python需要去某些固定的路径下去查找Python模块,上面我们设置在MoleAndPackage中查找。但是这些路径下也是有目录层次的,Python是如何查找子目录中的模块呢?特别是引用第三方包时,我们也需要知道一定的层次关系。实际上,Python通过目录和文件构建包结构,并且包是层层嵌套的,和目录层层嵌套是一样的,这样就构成了包内的访问路径(或者命名空间,也可以说Python应用的命名空间与其目录和文件结构是对应了,似乎缺少了一些灵活,但也更简单)。例如我们在MoleAndPackage文件夹下,创建一个文件夹animal,里面创建一个文本文件pet.py,其内容如下:
# -*- coding: utf-8 -*-ID = 2name = "This pet"print namedef run(somewhere):print name,'runs', somewhere
那么如何引用pet.py这个模块呢?按照Python的约定,需要在animal文件夹中创建名为__init__.py的空文本文件,以标识animal文件夹是一个包。倘若animal文件夹内还有文件夹作为包,也必须包含__init__.py文件。这样就层层标识了访问的路径。
>>> import animal.petThis pet>>> print animal.pet.nameThis pet>>> animal.pet.run("everywhere")This pet runs everywhere>>>
或者使用from关键字直接导入模块内的属性或方法:
>>> from animal.pet import name,run>>> print nameThis pet>>> run("everywhere")This pet runs everywhere>>>
三、Python模块间引用
简答来说,只要Python模块在其执行环境配置的搜索路径中,并且其所在位置是包结构的一部分,那么我们就可以引用该模块。上文已经提供了模块引用的基本示例。只不过模块间引用时import语句是写在模块文件中,我们修改person.py模块的代码。
1、from、import和as
# -*- coding: utf-8 -*-ID = 1name = "This person"print namedef say(something):print name,'says', somethingfrom animal.pet import name as pet_name, run as pet_rundef have():print name,'has', pet_name
import语句可以写在文档中的任何位置,甚至if语句中,以便更好的控制模块引用。还可以通过as语句,使用另一个变量名进行引用,以避免变量名冲突。>>> import personThis personThis pet>>> print person.nameThis person>>> print person.pet_nameThis pet>>> person.have()This person has This pet>>>
3. Python—多线程文件名称查找
该脚本的功能为:
对某一文件夹启动任意个线程查找文件包含XXX字符的文件名,并显示该文件所在的路径
运行结果:
还没有进一步优化,欢迎大家留言评论,帮助小白改进脚本(✪ω✪)。
4. 用Python查找某文件夹的文件名称,并对文件名进行更改的库名称是什么
要在文件夹中搜索文件名并在 Python 中重命名文件,可以使用模块和模块。该模块提供基于通配符模式匹配文件路径的函数,而该模块提供用于处理文件和文件夹(如重命名文件)的函数。globosglobos
下面是如何使用 and 模块在文件夹中搜索文件名并重命名文件的示例:globos

此代码使用该函数搜索指定文件夹中的文件,使用通配符模式匹配所有文件。然后,它循环访问文件名,并使用该函数将文件名拆分为其基本名称和扩展名。然后,它会向基名称添加新后缀,并使用该函数重命名文件。glob.glob()*os.path.splitext()os.rename()
总体而言,和模块提供了一种强大而灵活的方式来搜索文件夹中的文件名并在 Python 中重命名文件。您可以使用这些模块来实现各种文件管理任务,例如基于不同模式搜索文件、批量重命名文件以及在文件夹之间移动或复制文件。
回答不易望请采纳
5. python怎么看一个py文件在哪里出现过
python运行py文件的方法:
1.首先在资源管理器里复制一下py文件存放的路径,并打开命令行;
2.然后切换到py文件的路径下面;
3.接着输入“python 文件名.py”;
4.最后按下回车键,可以看到窗口中py文件开始运行了。
以上就是python怎么运行py文件的详细内容。
6. 如何用python查询文件路劲
最近在用Python脚本处理文件夹下面的文件名的搜索和重命名。其中碰到如何递归遍历文件夹下面所有的文件,找到需要的文件,并且重命名的问题。其实如果看看Python的document,还是比较简单的,这里直接给出使用方法,免得大家还要花精力去查找。
环境:
文件夹结构:
----path1
----path1-1
----path1-1.1.txt
----path1-2
----path1.1.txt
----path2
----recursiveDir.py
文件夹结构如上所示。
代码分析(recursiveDir.py):
[python] view plain
<span style="font-size:18px;">import os
'''''
本脚本用来演示如何遍历py脚本所在文件夹下面所有的文件(包括子文件夹以及其中包含的文件)。
重点演示如何获取每个文件的绝对路径。注意os.path.join(dirpath, filename)的用法。
'''
rootdir = os.getcwd()
print('rootdir = ' + rootdir)
for (dirpath, dirnames, filenames) in os.walk(rootdir):
#print('dirpath = ' + dirpath)
for dirname in dirnames:
print('dirname = ' + dirname)
for filename in filenames:
#下面的打印结果类似为:D:\pythonDirDemo\path1\path1-1\path1-1.1.txt
print(os.path.join(dirpath, filename))
if(filename=='path1-1.1.txt'):
os.chdir(dirpath)
#os.rename(os.path.join(dirpath, filename), dirpath + os.sep + 'path1-1.1.new.txt')
os.rename('path1-1.1.txt', 'path1-1.1.new.txt')
#os.remove(os.path.join(dirpath, filename))
#下面的输出为fileName = path1-1.1.txt,并未包含绝对路径,所以需要使用os.path.join来链接,获取绝对路径
print('fileName = ' + filename)
print('------------------one circle end-------------------')</span>
所以可以看到程序中使用os.path.join(dirpath, filename)来拼接出绝对路径出来。注意下面的重命名用法,可以将工作目录切换到os.chdir(dirpath),这样就可以直接用os.rename(oldfile, newfile).Python会自动到dirpath下面查找oldfile并且重命名为newfile。注意工作目录的含义:在Python的GUI中,使用os.getcwd()可以获取到当前工作目录。测试如下:
[html] view plain
<span style="font-size:18px;">>>> os.chdir('D:')
>>> os.getcwd()
'D:\\pythonDirDemo\\path1\\path1-1'
>>> os.chdir('D:\\')
>>> os.getcwd()
'D:\\'</span>
可见却是可以用chdir改变工作目录。这个代码只是在重命名的时候用到的小技巧而已,大家知道有这个东西就行了,不过调用chdir之后,后续再获取getcwd()就会被影响,所以警惕。
7. python怎么两两查找多个文件相同内容
可以用 difflib库,下面给一个例子,具体需求自己研究
假如在同一个目录下有a.txt, b.txt 两个文本文件
a.txt 内容是
aaa
bbb
b.txt内容是
aaa
ccc
import difflib
a = open('a.txt', 'U').readlines()
b = open('b.txt', 'U').readlines()
diff = difflib.ndiff(a, b)
sys.stdout.writelines(diff)
结果是:
aaa
- bbb+ ccc
8. python从文件中查找数据并输出
#注意,这里的代码用单空格缩进
importre
#写上你的文件夹路径
yourdir=""
keywordA="keywordA"
keywordB="keywordA(d+)"
files=[os.path.join(yourdir,f)forfinos.listdir(yourdir)]
withopen("out.txt","w")asfo:
forfinfiles:
fname=os.path.basename(f)
withopen(f,"r")asfi:
forlineinfi:
ifline.strip():
searchA=re.search(keywordA,line.strip())
ifsearchA:
searchB=re.search(keywordB,line.strip())
ifsearchB:
print(fname,serachB.groups()[0],sep=" ",file=fo)
