# -*- 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 根据现有文件树创建文件树的更多相关文章

  1. php学习笔记--高级教程--读取文件、创建文件、写入文件

    打开文件:fopen:fopen(filename,mode);//fopen("test.txt","r"): 打开模式:r  仅仅读方式打开,将文件指针指向 ...

  2. linux中为什么删除文件比创建文件要快,读取文件和删除文件的过程是什么?

    一.为什么删除文件比创建文件要快? 因为删除文件只是将bitmap位图表中将文件所占据的inode 和dacablock的使用状态从1变成0,相当于释放了这些快的使用权. 二.读取文件和删除文件的过程 ...

  3. python在windows系统上创建文件

    正确方法为:open("test1.txt",'wb')或open("test1.txt",'w') 以下是网上的方法创建遇到的问题 使用Python2.7在w ...

  4. Python中根据时间自动创建文件夹

    导语 ​ 电脑桌面文件太多查找起来比较花费时间,并且凌乱的电脑桌面也会影响工作心情,于是利用python根据时间自动建立当日文件夹,这样就可以把桌面上文件按时间进行存放. 代码实现 # _*_codi ...

  5. asp.net上传文件并创建文件夹和删除文件

    上传文件部分代码: /// <summary> /// 上传保存文件并返回文件的保存地址和文件名称 /// </summary> /// <param name=&quo ...

  6. [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表

    写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...

  7. Java File文件操作 创建文件\目录,删除文件\目录

    Java手册 java.io 类 File java.lang.Object java.io.File 所有已实现的接口: Serializable, Comparable<File> p ...

  8. Java中Io流操作-File类的常用操作-创建文件,创建文件夹

    package com.hxzy.IOSer; import java.io.File;import java.io.IOException; public class Demo03 { public ...

  9. linux删除文件、创建文件

    1.删除文件 rm huahua.txt 2.创建文件 touch huahua.txt

随机推荐

  1. JavaScript跨域提交数据

    1.通过jsonp跨域    场景:假设前台有JS方法"crossJS", 1.1发送请求http://www.xxx.com/?callback=crossJS.(创建一个scr ...

  2. python关于分割与拼接的那些事

    1.split分割 基于re模块和正则表达式对象的方法split(),以后再做学习 基于字符串的split()方法 :字符串对象的split()方法也只能处理非常简单的情况,而且不支持多个分隔符,对分 ...

  3. Web Service 的创建简单编码、发布和部署

    最近,老大准备将已有的C/S架构项目中的通信部分做成通用,需要将其支持WebService为以后项目向着B/S架构升级做好铺垫,为此身为屌丝的我去各种百度WebService是个什么卵玩意,然后逐渐搭 ...

  4. Normalization

    In creating a database, normalization is the process of organizing it into tables in such a way that ...

  5. (转载)Win8.1的版本

    Win8.1版本到底有哪些? Windows 8.1的各版本有什么不同.差别和区别? Win8.1旗舰版有木有? Win8.1最好的版本是哪个? 我应该用哪个版本的Windows 8.1? 之前软媒曾 ...

  6. John the ripper使用教程

    破解Linux的用户密码:John [跨平台的密码解密工具] root@only:~# unshadow /etc/passwd /etc/shadow > ~/file_to_crack ro ...

  7. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  8. POJ 3415 Common Substrings ——后缀数组

    [题目分析] 判断有多少个长度不小于k的相同子串的数目. N^2显然是可以做到的. 其实可以维护一个关于height的单调栈,统计一下贡献,就可以了. 其实还是挺难写的OTZ. [代码] #inclu ...

  9. CodeForces336 A & B

    第一题就是排序然后计算一下时间.没什么 package codeforces336; import java.io.InputStreamReader; import java.util.Scanne ...

  10. Android 学习笔记之一 “Unable to establish loopback connection”

    今天碰到一个错误:Unable to establish loopback connection,在网上找各种方法都解决不了,后来看一个帖子说是要关闭系统防火墙,尝试了下还是不行.最后是进任务管理器杀 ...