python 根据现有文件树创建文件树
# -*- coding: utf-8 -*-
import os, errno def fileName(path):#获取文件夹
str = ''
for i in range(1,len(path.split('\\'))):
str+=path.split('\\')[i]+'\\'
return str def mkdir_p(path): #创建目录树
try:
os.makedirs(path)
except OSError as exc: # Python >2.5 (except OSError, exc: for Python <2.5)
if exc.errno == errno.EEXIST and os.path.isdir(path):
pass
else: raise def fileTraverse(filepath):
#遍历filepath下所有文件,包括子目录
files = os.listdir(filepath)
for fi in files:
fi_d = os.path.join(filepath,fi)
if os.path.isdir(fi_d):
mkdir_p("E:\\"+fileName(fi_d))
#创建文件夹,文件夹目录树
fileTraverse(fi_d)#递归遍历
else:
print os.path.join(filepath,fi_d) root = 'F:\\目标2'
root = root.decode('utf-8')#目录名中有中文,需要decode
fileTraverse(root)
# -*- coding: utf-8 -*-
import os, errno
import jieba.posseg as pseg def fileName(filePath):#获取文件夹
str = ''
for i in range(1,len(filePath.split('\\'))):
str+=filePath.split('\\')[i]+'\\'
return str def mkdir_p(path): #创建目录树
try:
os.makedirs(path)
except OSError as exc: # Python >2.5 (except OSError, exc: for Python <2.5)
if exc.errno == errno.EEXIST and os.path.isdir(path):
pass
else: raise def splitSentence(inputFile):
filePath = os.path.dirname(inputFile) #获取路径名
name = os.path.basename(inputFile) #获取文件名 fin = open(inputFile,'r') #以读的方式打开文件
outputfile = "E:\\" + fileName(filePath)#~~~~~~~~~~~~~~~~~~~~~~~~~~~源文件~~~~~~~~~~~~~~~~~~~~~~~~~~~
#outputfile = (outputfile+name).decode('utf-8')
fout = open(outputfile+name,'w') #以写得方式打开文件 for eachLine in fin:
line = eachLine.strip().decode('utf-8','ignore') #去除每行首尾可能出现的空格,并转为Unicode进行处理
line=line.strip('\n') #去掉多余空行
wordList = pseg.cut(line) #用结巴分词,对每行内容进行分词
outStr = ''
for word in wordList:#
#print word.word,word.flag
outStr += word.word+'/'+word.flag
#print outStr
fout.write(outStr.encode('utf-8')) #将分词好的结果写入到输出文件
fout.write('\n')
fin.close()
fout.close() def fileTraverse(filePath):
#遍历filepath下所有文件,包括子目录
files = os.listdir(filePath)
for fi in files:
fi_d = os.path.join(filePath,fi)
if os.path.isdir(fi_d):
#检验给出的路径是否是一个目录
mkdir_p("E:\\"+fileName(fi_d))#~~~~~~~~~~~~~~~~~~~~~~~~~~~目标文件~~~~~~~~~~~~~~~~~~~~~~~~~~~
#创建文件夹,文件夹目录树
fileTraverse(fi_d)#递归遍历
else:
#print os.path.join(filePath,fi_d)#y与fi_d相同
#print fi_d
splitSentence(fi_d) root = 'F:\\source' #~~~~~~~~~~~~~~~~~~~~~~~~~~~源文件~~~~~~~~~~~~~~~~~~~~~~~~~~~
root = root.decode('utf-8')#目录名中有中文,需要decode
fileTraverse(root)
python 根据现有文件树创建文件树的更多相关文章
- php学习笔记--高级教程--读取文件、创建文件、写入文件
打开文件:fopen:fopen(filename,mode);//fopen("test.txt","r"): 打开模式:r 仅仅读方式打开,将文件指针指向 ...
- linux中为什么删除文件比创建文件要快,读取文件和删除文件的过程是什么?
一.为什么删除文件比创建文件要快? 因为删除文件只是将bitmap位图表中将文件所占据的inode 和dacablock的使用状态从1变成0,相当于释放了这些快的使用权. 二.读取文件和删除文件的过程 ...
- python在windows系统上创建文件
正确方法为:open("test1.txt",'wb')或open("test1.txt",'w') 以下是网上的方法创建遇到的问题 使用Python2.7在w ...
- Python中根据时间自动创建文件夹
导语 电脑桌面文件太多查找起来比较花费时间,并且凌乱的电脑桌面也会影响工作心情,于是利用python根据时间自动建立当日文件夹,这样就可以把桌面上文件按时间进行存放. 代码实现 # _*_codi ...
- asp.net上传文件并创建文件夹和删除文件
上传文件部分代码: /// <summary> /// 上传保存文件并返回文件的保存地址和文件名称 /// </summary> /// <param name=&quo ...
- [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表
写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...
- Java File文件操作 创建文件\目录,删除文件\目录
Java手册 java.io 类 File java.lang.Object java.io.File 所有已实现的接口: Serializable, Comparable<File> p ...
- Java中Io流操作-File类的常用操作-创建文件,创建文件夹
package com.hxzy.IOSer; import java.io.File;import java.io.IOException; public class Demo03 { public ...
- linux删除文件、创建文件
1.删除文件 rm huahua.txt 2.创建文件 touch huahua.txt
随机推荐
- wpf 悬浮窗口的实现
又到了写点东西的时候,因为有了新的收获,所以用随笔来记录下自己的成长.话不多说,正入主题. 最近又遇到一个新的需求,有一组控件,需要悬浮显示在面板的边缘上,刚开始的时候,是不显示的,点击后显示,然后再 ...
- LeetCode之263. Ugly Number
------------------------------------------------------------- 如果一个数的质因子只包括2,3,5,那么这个数n可以表示为:n=2x+3y+ ...
- Xcode最好用的日志打印方法
一般打印日志都是用的系统自带的NSLog来打印的,假如项目做完了,要上线了,这些打印的日志就会很浪费性能,网上有很多的解决办法,我也是感觉网上的还是有点不方便,所以就自己又修改了一下,分享给大家. 网 ...
- json的注意事项
原文摘自:http://www.cnblogs.com/xcxc/p/3729207.html 在PHP语言中使用JSON和将json还原成数组 PHP原生提供json_encode()和json ...
- python学习笔记-进程线程
1.什么是进程(process)? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述 ...
- 2017年第1贴:EXT.JS使用MVC模式时,注意如何协调MODEL, STORE,VIEW,CONTROLLER的关系
也调了快一天,死活找不到窍门. MODEL, STORE,VIEW的调置测试了很久,试了N种方法,不得其果. 最后,试着在APPLICATION里加入CONTROLLER, 在CONTROLLER里加 ...
- GitHub Windows客户端无法登录
Windows 7系统,下载GitHub后始终无法登录,貌似填写的用户名和密码都没有提交服务器,直接客户端“验证”的. 解决办法: 下载 Microsoft .NET Framework 4.5 安装 ...
- Mac下的类似apt-get的包管理工具Homebrew(笔记)
对于一个习惯了在 Ubuntu 的终端上通过 apt-get 来安装工具软件的我来说,也希望在Mac上找到类似的工具,能很方便的一条命令就能安装所需的软件,而不用手工的去查找下载编译,或者是折腾安装所 ...
- input=text数字问题
其实老干部也会犯错,今天朋友在银行卡账号时候要求输入数字,它的正则竟然排除中文.其实正则是很重要的.废话少说.如果禁止中文呢 ime-mode 但是这个方法兼容性并不是很好,首先我们得知道. css ...
- D3中数据与DOM element绑定之data() enter() exit()浅析
几个非常有用的links: [1] three little circles. http://bost.ocks.org/mike/circles/ [2] How selection works. ...