python 文件夹内容与txt文件转换

 1 #!/usr/bin/python3
 2 # 文件名:ProjectTransfer.py
 3
 4 import os
 5 class ProjectTransfer:
 6     def __init__(self, txtFilePath=‘D:/src.txt‘, srcPath=‘D:/mhi‘, srcPathTo=‘D:/mhi2‘, contentTypes=(‘.java‘,‘.xml‘,‘.jsp‘,‘.properties‘), nameTypes=(‘.js‘,‘.css‘)):
 7         self.txtFilePath = txtFilePath
 8         self.srcPath = srcPath
 9         self.contentTypes = contentTypes
10         self.nameTypes = nameTypes
11         self.srcPathTo = srcPathTo
12
13     def file2Txt(self, filePath, txtf):
14         files = os.listdir(filePath)
15         for f in files:
16             cf = filePath + ‘/‘ + f
17             if not os.path.isdir(cf):
18                 if os.path.splitext(f)[1] in self.contentTypes:
19                     txtf.write(‘#BeginFile:‘ + f + ‘\n‘)
20                     txtf.write(‘#FilePath:‘ + cf + ‘\n‘)
21                     with open(cf, encoding=‘utf-8‘) as inputf:
22                         txtf.writelines(iter(inputf))
23                     txtf.write(‘\n#EndFile:‘ + f + ‘\n‘)
24                 elif os.path.splitext(f)[1] in self.nameTypes :
25                     txtf.write(‘#BeginFile:‘ + f + ‘\n‘)
26                     txtf.write(‘#FilePath:‘ + cf + ‘\n‘)
27                     txtf.write(‘#EndFile:‘ + f + ‘\n‘)
28             else:
29                 self.file2Txt(cf, txtf)
30
31     def txt2File(self):
32         f = None
33         with open(self.txtFilePath, ‘r‘, encoding=‘utf-8‘) as txtf:
34             for line in txtf:
35                 if line.startswith(‘#BeginFile:‘):
36                     pass
37                 elif line.startswith(‘#FilePath:‘):
38                     filePath = line[10:].replace(self.srcPath, self.srcPathTo)[:-1]
39                     if(f and not f.closed):
40                         f.close()
41                     dirname=os.path.dirname(filePath)
42                     if not os.path.exists(dirname):
43                         os.makedirs(dirname)
44                     f = open(filePath, ‘w‘, encoding=‘utf-8‘)
45                 elif line.startswith(‘#EndFile:‘):
46                     f.close()
47                 else:
48                     f.write(line)
49
50
51 trans = ProjectTransfer()
52 if os.path.exists(trans.txtFilePath):
53     os.remove(trans.txtFilePath)
54 with open(trans.txtFilePath, ‘a‘, encoding=‘utf-8‘) as txtf:
55     trans.file2Txt(trans.srcPath, txtf)
56
57 trans.txt2File()

原文地址:https://www.cnblogs.com/xuemanjiangnan/p/8710119.html

时间: 2024-12-22 21:16:38

python 文件夹内容与txt文件转换的相关文章

Java File IO 练习题:把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件

package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.In

4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 (2)把数组中的数字放到当前文件夹的numArr.txt文件中

package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; /* * 4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台. (2)把数组中的数字放到当前文件夹的number.txt文件中 */ public class Test4 { public static void main

根据文件夹地址获取txt文件并获取txt内容索引

本文章原创,引用转载请注明作者出处. 这两天写了一个小的C++程序,用的开发工具是visual studio.个人感觉Microsoft做的visual studio真心的很强大,推荐大家在开发c\c++,以及c#,asp.net等一些软件的时候可以使用visual studio. 说一下我开发的的程序效果:输入一个文件夹地址,程序可以遍历该文件夹以及该文件夹中所有子文件夹中文件,经过判断获取所有txt类型文件地址,并进入txt文件根据txt文件内容生成索引返回.之后用户可以输入关键字,程序返回

python 查找指定内容的txt文件

程序设计思路:1. 利用os.walk()找出所有的文件;2.利用正则找到指定后缀的文件:3.找到需要的txt文件后,通过open().readlines()读取文件中每行数据;4.读取后,保存正则匹配到数据的文件:5.你懂的. #!/usr/bin/env python #coding:utf8 import os import re regtxt = r'.+?\.txt' #扫描对象为txt文件. regcontent = r'what is your name' #列出内容含有'what

linux C创建文件夹然后创建txt文件添加内容

void StoreEvent(char *str){ long tt;     struct tm *vtm;  int i; char Etime[100]; char filename[20]; char dirname[20];  char path[100];    getcwd(path, sizeof(path));  time( &tt );     vtm = localtime( &tt );  sprintf(Etime,"%d-%02d-%02d %02d

取得文件夹内容信息

翻译自MSDN 2005 -> Win32 和 COM 开发 -> User Interface -> Windows User Experience -> Windows Shell -> Shell Programmer's Guide -> Shell Basics -> Shell Basics: Programming the Shell -> Getting Information About the Contents of a Folder G

Winform文件夹内容同步更新、备份、日志、恢复

相信大家做项目或者处理文件时候经常要用到备份的功能,这里给大家做一个可以同步更新文件夹内容并且备份的Winform程序,目前地址路径在App.Config文件里面设置,如需更改直接用记事本编辑即可,下面放代码和截图. 1.CS代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Li

win10 C盘根目录无法创建文件,导致我python在c盘建立txt文件被拒绝在d盘不会拒绝

win10c盘只能建立文件夹 无法建立文件 这也是我python在c盘建立txt文件被拒绝在d盘建立txt不被拒绝的原因 但也不是C盘下面所有文件夹不让建立文件,目前只有根目录下,还有一些特殊目录下不让建立文件,而迅雷下载和我的python文件夹等都是让建立的 我对比C和d盘的 之后将c的这个用户改为和d一样权限 发现c盘下面也可以新建文件了参考https://blog.csdn.net/liqfyiyi/article/details/46043771 让win10 C盘根目录能创建文件,但是

用python查找在指定目录下特定文件夹下的指定文件

本代码是在python2.*上边所写. 功能:在指定目录下查找特定文件夹下的特定文件. 实例:查找在packages目录下文件夹名为values下的strings.xml文件 #!/usr/bin/env python import os def walk_dir(path): filter_file_name = 'strings.xml' for root, dirs, files in os.walk(path): for dir_item in dirs: if dir_item ==