读取文件夹根目录写入txt并生成随机样本
生成 读取 文件夹 写入 txt 根目录
2023-09-14 09:14:39 时间
通过python写一些脚本实现数据处理功能确实很方便,先记录当下,后续补充完善
1.读取文件夹所有数据并进行随机采样
注:主要调用os库的文件操作功能,想要掌握程度就自己实现一个小功能就很快了解其基本原理了,代码书写时需要注意上下对齐与空格,不然会报错,再就是对于中文路径读出和写入时的编码小心,其他就是字符串的操作了,具体实现如下:
# -*- coding:UTF-8 -*-
import os
import random
dirname = "...folder"
txt_path='F:/code/Pycham/list.txt'
txt_file = open(txt_path,'w')
imglist=[]
def traverse_path(file_path):
files = os.listdir(file_path)
for fi in files:
fi_d = os.path.join(file_path, fi)
if os.path.isdir(fi_d):
traverse_path(fi_d)
else:
img_name=os.path.join(file_path, fi_d)
#print(img_name)
if img_name[-4:]=='tiff':
#print(img_name)
txt_file.write(img_name)
txt_file.write('\n')
# for i in len(lists):
# print(lists(i))
#print("读取图像数量:",len(imglist))
traverse_path(dirname)
#随机抽取样本数目
sample_file='F:\code\Pycham\sample.txt'
n=1000
f=open(txt_path,encoding='gbk')
lines=f.readlines()
list=[]
for line in lines:
print(line)
list.append(line)
print("样本总个数:",len(list)," 抽样个数:",n)
g=open(sample_file,'w')
a=random.sample(list,n)#随机抽取n行
for i in a:
g.write(i)
f.close()
g.close()
2.关于pycharm读入cv2报错的解决
关于opencv-python安装:
C++快速梯子https://www.raoyunsoft.com/wordpress/index.php/2020/03/09/opencvdownload/
python快速梯子https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/opencv-python/
将下载后.whl文件放到以下目录:
打开cmd窗口 ,键入:
安装完opencv_python,之后在python 3.x.x—Lib—site-packages里应该有很多opencv开头,然后dll结尾的文件。这个时候我们只需要一步操作就行了。
那就是将这些文档全部放在一个cv2的文件夹下面。 最后将这个cv2文件夹放在Lib目录下面。一定要注意是lib目录。如果放在site-packages还是会报错的。
总之概况为一句话,把安装到site-packages目录下cv2目录移动到Lib目录下就行!
这样Tracker的代码跑起来了,很开心,但是发现pycharm关于cv2没有代码提示,这不能忍啊!,最后在Lib\cv2这个目录,找到__init__.py,修改如下:
import sys
import os
import importlib
os.environ["PATH"] += os.pathsep + os.path.dirname(os.path.realpath(__file__))
from .cv2 import *
from .data import *
# wildcard import above does not import "private" variables like __version__
# this makes them available
globals().update(importlib.import_module('cv2.cv2').__dict__)
3.遍历文件及子文件目录获取图像路径
# -*- coding:UTF-8 -*-
import os
import random
dirname = "...folder"
txt_path='F:/code/Pycham/list.txt'
txt_file = open(txt_path,'w')
imglist=[]
def traverse_path(file_path):
files = os.listdir(file_path)
for fi in files:
fi_d = os.path.join(file_path, fi)
if os.path.isdir(fi_d):
traverse_path(fi_d)
else:
img_name=os.path.join(file_path, fi_d)
#print(img_name)
if img_name[-4:]=='tiff':
#print(img_name)
imglist.append(img_name)
txt_file.write(img_name)
txt_file.write('\n')
# for i in len(lists):
# print(lists(i))
traverse_path(dirname)
print("读取图像数量:",len(imglist))
相关文章
- 造一轮子:vscode插件--支持json生成go struct,curl生成go代码
- Python 二维码的读取与生成:使用链接生成二维码、读取二维码里的链接
- Venom:一款功能强大的MetaSploit Shellcode生成、编译和处理工具
- div界面元素生成图片详解编程语言
- 自动生成MySQL激活码自动生成:轻松实现一键激活(mysql激活码)
- jsp读取大对象CLOB并生成xml文件示例
- 使用函数自动生成n层目录
- ASP+FSO生成的网页文件默认编码格式以及转换成UTF-8编码方法
- 关于AptanaStudio生成自动备份文件的解决办法
- PHP使用imagick读取PDF生成png缩略图的两种方法
- python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
- mssqlserver中实现的unix时间戳函数(含生成和格式化,可以和mysql兼容)