pythonos复制
❶ python os.walk怎么循环
os.walk(top,topdown=True,onerror=None,followlinks=False)
可以得到一个三元tupple(dirpath,dirnames,filenames),
第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。
dirpath是一个string,代表目录的路径,
dirnames是一个list,包含了dirpath下所有子目录的名字。
filenames是一个list,包含了非目录文件的名字。
这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath,name).
通过for循环自动完成递归枚举
例如:
F:aaa目录是这样的文件目录结构
F:aaa
|--------1.txt
|--------2.txt
|--------3.txt
|--------4
|-------5.txt
|-------6.txt
|-------7.txt
[python]view plain
#!/usr/bin/envpython
#2.py
#useUTF-8
#Python3.3.0
#os.walk()的使用
importos
#枚举dirPath目录下的所有文件
defmain():
#begin
fileDir="F:"+os.sep+"aaa"#查找F:aaa目录下
forroot,dirs,filesinos.walk(fileDir):
#begin
print(root)
print(dirs)
print(files)
#end
os.system("pause")
#end
if__name__=='__main__':
#begin
main()
#end
#输出
#F:aaa
#['4']
#['1.txt','2.txt','3.txt']
#F:aaa4
#[]
#['5.txt','6.txt','7.txt']
- 你也可以这样
#!/usr/bin/envpython
#3.py
#useUTF-8
#Python3.3.0
#os.walk()的使用
importos
#枚举dirPath目录下的所有文件
defmain():
#begin
fileDir="F:"+os.sep+"aaa"#查找F:aaa目录下
forainos.walk(fileDir):
#begin
print(a[0])
print(a[1])
print(a[2])
#end
os.system("pause")
#end
if__name__=='__main__':
#begin
main()
#end
#输出
#F:aaa
#['4']
#['1.txt','2.txt','3.txt']
#F:aaa4
#[]
#['5.txt','6.txt','7.txt']
- 通过for循环即可完成目录的递归.
#!/usr/bin/envpython
#2.py
#useUTF-8
#Python3.3.0
#os.walk()的使用
importos
#枚举dirPath目录下的所有文件
defmain():
#begin
fileDir="F:"+os.sep+"aaa"#查找F:aaa目录下
forroot,dirs,filesinos.walk(fileDir):
#begin
fordirindirs:
#begin
print(os.path.join(root,dir))
#end
forfileinfiles:
#begin
print(os.path.join(root,file))
#end
#end
os.system("pause")
#end
if__name__=='__main__':
#begin
main()
#end
#输出
#F:aaa4
#F:aaa1.txt
#F:aaa2.txt
#F:aaa3.txt
#F:aaa45.txt
#F:aaa46.txt
#F:aaa47.txt
[python]view plain
你还可以这样
[python]view plain
❷ python—os模块批量修改文件名&复制文件
1、修改文件名
导入os模块
这里举的例子是:对目录下的所有文件重命名,格式为一个字符串+6位递增数
注意:其中zfill(6)的作用是将1变为6位数,缺少位置0代替,结果就是00001
2、复制文件
注意:还有其它复制方法,可以自行网络~!
3.格式化输出
PS:觉得这篇文章有用的朋友,多多点赞打赏哦~!
❸ Python的os库的使用
python os库有很多和操作系统相关的功能。
其实不仅仅如此,os库中还有很多和文件,路径,执行系统命令相关的。
下面是os模块常用的方法.
1.os.sep 可以取代操作系统特定的路径分割符
2.os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'
3.os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径
4.os.getenv() 用来读取环境变量
5.os.putenv() 用来设置环境变量
6.os.listdir() 返回指定目录下的所有文件和目录名
7os.remove() 函数用来删除一个文件
8.os.system() 函数用来运行shell命令
9.os.linesep 字符串给出当前平台使用的行终止符。例如,Windows使用'/r/n',Linux使用'/n'而Mac使用'/r'。
10.os.path.split() 函数返回一个路径的目录名和文件名
11.os.path.isfile() 检验给出的路径是一个文件
12os.path.isdir() 检验给出的路径是一个目录
13.os.path.existe() 函数用来检验给出的路径是否真地存在
14.os.listdir(dirname) 列出dirname下的目录和文件
15.os.getcwd() 获得当前工作目录
16.os.curdir 返回当前目录('.')
17.os.chdir(dirname) 改变工作目录到dirname
os.path都是和路径指定的文件,目录,和路径字符串有关系的函数
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) 返回文件路径
❹ python中怎样转到指定目录
例如使用IDLE编译python代码时,可以使用os.chdir转到指定目录
import os.
os.getcwd() #get current work direction.
os.chdir('E:\Python_File\Test') #change direction.
在这之后可以直接调用’E:Python_FileTest’目录下的函数。
或者用库调用:
import osimport shutil.
alllist=os.listdir(u"D:\notes\python\资料\")for i in alllist:
aa,bb=i.split(".") if 'python' in aa.lower():
oldname= u"D:\notes\python\资料\"+aa+"."+bb.
newname=u"d:\\newname"+aa+"."+bb.
shutil.file(oldname,newname).

(4)pythonos复制扩展阅读:
Python中获得当前目录和上级目录:
获取当前文件的路径:
from os import path
d = path.dirname(__file__) #返回当前文件所在的目录 # __file__ 为当前文件, 若果在ide中运行此行会报错,可改为 #d = path.dirname('.')。
获得某个路径的父级目录:
parent_path = os.path.dirname(d) #获得d所在的目录,即d的父级目录 parent_path = os.path.dirname(parent_path) ##获得parent_path所在的目录即parent_path的父级目录。
获得规范的绝对路径:
abspath = path.abspath(d) #返回d所在目录规范的绝对路径。
❺ 用python把文件夹下的所有文件包括文件夹里面的文件都拷贝到同一个目录下
importos
importshutil
defwenjian(path):
ifos.path.isfile(path):
shutil.(path,'c:\new_dir')
ifos.path.isdir(path):
lists=os.listdir(path)
foriinlists:
wenjian(i)
foriinos.walk('c:\1'):
wenjian(i)
建议你把检索到的文件都放到一个新的文件夹里,要不然系统在同一个文件夹里不停的读取和写入可能会陷入死循环以至出错。
❻ 如何使用python复制大概200G的数据[任何语言只要能实现]
如果我理解的正确的话,楼主是要大文件吧。
python最经常使用的函数,应该是shutil.file()了,它默认以16384bytes 的大小作为缓冲区,对于小的文件,的确不错。但是处理到大的文件的时候,性能下降就很严重。过小的buffer会不合适。
经过多次的尝试,发现10Mb的buffer最合适,再高也没有性能的提升。重载后的函数如下
defFile(src,dst,buffer_size=10485760,perserveFileDate=True):
'''
Copiesafiletoanewlocation.
@paramsrc:SourceFile
@paramdst:DestinationFile(notfilepath)
@parambuffer_size:Buffersizetousering
@paramperserveFileDate:Preservetheoriginalfiledate
'''
#.Ifitdoesn'tcreatethedirectory
dstParent,dstFileName=os.path.split(dst)
if(not(os.path.exists(dstParent))):
os.makedirs(dstParent)#
buffer_size=min(buffer_size,os.path.getsize(src))
if(buffer_size==0):
buffer_size=1024ifshutil._samefile(src,dst):
raiseshutil.Error("`%s`and`%s`arethesamefile"%(src,dst))
forfnin[src,dst]:
try:
st=os.stat(fn)
exceptOSError:
#Filemostlikelydoesnotexist
pass
else:
#XXXWhataboutotherspecialfiles?(sockets,devices...)
ifshutil.stat.S_ISFIFO(st.st_mode):
raiseshutil.SpecialFileError("`%s`isanamedpipe"%fn)
withopen(src,'rb')asfsrc:
withopen(dst,'wb')asfdst:
shutil.fileobj(fsrc,fdst,buffer_size)if(perserveFileDate):
shutil.stat(src,dst)
使用的时候记得添加相应的包。
❼ python 复制文件的小问题,求高手解,请仔细看图片啊
运行之前确保已经连上 8.8.9.127的共享。
import os
import os.path
from os.path import isfile, isdir, join
from shutil import
remote_dir = r'\\8.8.9.127\mal\decrpyt'
dest_dir = r'd:\\copied_files'
if not isdir(dest_dir):
os.makedirs(dest_dir)
for f in os.listdir(remote_dir):
if f.lower().endswith('.txt'):
f_path = join(remote_dir, f)
if isfile(f_path):
print 'ing %s...' % f_path
(f_path, dest_dir)
❽ python os 移动文件到指定目录
使用python的os模块移动文件到指定目录,可以使用os模块中的renames方法,可以生成目录如果目录不存在,例如,将当前目录的文件“test.txt”移动到“data/test.txt“,使用2行代码即可,如下:
import os;
os.renames("test.txt","data/test.txt");
❾ python 实现一级目录下的所有文件与文件夹到指定目录
'''
python3 实现
将a目录下所有文件和文件夹到b目录
'''
import os, shutil
#src 原始目录, des 目标目录
def sourcecpy(src, des):
src = os.path.normpath(src)
des = os.path.normpath(des)
if not os.path.exists(src) or not os.path.exists(src):
print("文件路径不存在")
sys.exit(1)
#获得原始目录中所有的文件,并拼接每个文件的绝对路径
os.chdir(src)
src_file = [os.path.join(src, file) for file in os.listdir()]
for source in src_file:
#若是文件
if os.path.isfile(source):
shutil.(source, des) #第一个参数是文件,第二个参数目录
#若是目录
if os.path.isdir(source):
p, src_name = os.path.split(source)
des = os.path.join(des, src_name)
shutil.tree(source, des) #第一个参数是目录,第二个参数也是目录
