Python读取文件夹下图片,如何优化代码提高效率 5C

读取文件夹下所有图片,把像素点分别按r\g\b通道读出来处理,不知道为什么读图很慢,一百多张图等好一会,有没有什么优化代码的建议?

 import sys  
import os  
import time  
import random  
import numpy as np  

from PIL import Image  


SIZE = 471296  
WIDTH = 896  
HEIGHT = 506  
dir = "image"+"/" 


# 第一次遍历图片目录获取图片总数  
input_count = 0  

for rt, dirs, files in os.walk(dir):  
    for filename in files:  
        input_count += 1  
#print(input_count)

def cal_average(x):
    return x/input_count        

# 定义对应维数和各维长度的数组  
r = np.array([[0]*SIZE for i in range(input_count)])  
g = np.array([[0]*SIZE for i in range(input_count)])  
b = np.array([[0]*SIZE for i in range(input_count)])  

# 第二次遍历图片目录是为了生成图片数据和标签  
index = 0

for rt, dirs, files in os.walk(dir):
    for filename in files:  
        filename = dir + filename  
        img = Image.open(filename)  
        pix = img.load()
        width = img.size[0]
        height = img.size[1]
        for w in range(width):   
            for h in range(height):       
                r[index][w+h*width], g[index][w+h*width], b[index][w+h*width] = pix[w, h]
        index+=1

2个回答

         for w in range(width):   
            for h in range(height):
                        这两个颠倒下看看,因为图片是按照行存储的,所以内侧循环如果是width会更好利用缓存。
u012918573
汪汪汪呸呸呸 回复caozhy: 896*506
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复u012918573: 你一个图片有多大
大约 2 年之前 回复
u012918573
汪汪汪呸呸呸 虽然您说的挺对,但是改了之后平均每张图片读进来还是要五秒多~
大约 2 年之前 回复

用concurrent.futures 的 ThreadPoolExecutor来做

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

python读取文件夹中的文件,是按照什么排序的,为什么12排在1前面?

如题, In [61]: file_names Out[61]: ['MgCa_45deg_halfdeg_0_t200.xlsx', 'MgCa_45deg_halfdeg_10_t200_com.xlsx', 'MgCa_45deg_halfdeg_11_t200_com.xlsx', 'MgCa_45deg_halfdeg_12_t200_com.xlsx', 'MgCa_45deg_halfdeg_13_t200_com.xlsx', 'MgCa_45deg_halfdeg_14_t200_com.xlsx', 'MgCa_45deg_halfdeg_15_t200_com.xlsx', 'MgCa_45deg_halfdeg_1_t200_com.xlsx', 'MgCa_45deg_halfdeg_2_t200_com.xlsx', 'MgCa_45deg_halfdeg_3_t200_com.xlsx', 'MgCa_45deg_halfdeg_4_t200_com.xlsx', 'MgCa_45deg_halfdeg_5_t200_com.xlsx', 'MgCa_45deg_halfdeg_6_t200_com.xlsx', 'MgCa_45deg_halfdeg_7_t200_com.xlsx', 'MgCa_45deg_halfdeg_8_t200_com.xlsx', 'MgCa_45deg_halfdeg_9_t200_com.xlsx']

Python读取一个文件夹里多个txt文件里的所有数据

当一个文件夹下面有600个txt数据文件,每个txt文件里都是第一行是变量名,从第2行开始是数据,大概100行左右,共23列,想要把这600个文件里的数据都导入到pycharm中,不知道只用array还是dataframe比较合适呢??虽然感觉这个问题很简单,但我真的操作起来好难的,求解!!!在线等

如何用python访问文件夹?

怎么才能用python访问一个文件夹下的文件啊 ???求代码啊 !!我想做一个动画 ,结果python访问不了桌面的一个文件夹中的图片

Python遍历文件夹的文件提取关键信息到新的表格

各位大神好,小弟目前在自学Python处理办公的一些数据,遇到一个问题: 假设目前有一份excel数据,格式为 df = ['ID', 'Name', 'Tracking Number'], 大概几千行这样; 另一个文件夹A下面有名称格式包含生成日期的多个CSV数据文件,格式为 df1 = ['Num1', 'Num2', 'Num3', 'Tracking Number']; 现在想根据df这里面的Tracking Number这一列的数据,去遍历文件夹A下面的所有CSV文件找到对应的Num1,Num2, Num3并且提取到df里面对应的行。 我目前尝试的方法是将A文件夹下所有文件合并成一个df,去重后再根据TrackingNumber使用merge函数拼接过去,这样的话随着A文件夹文件数量增多生成的合并df会很大,运行很慢,步骤过于繁琐,想请教一下各位有没有快捷点的方法可以实现?

如何对python代码进行优化,以提高运行速度

遇到个代码优化的问题。。想请教下。。这段代码,结构或是哪里该如何优化下,以提高运行速度。。 大致情况先介绍下: 1. 代码需要考虑指定文件的输出---也就是相应数据是否需要计算;代码中的if output1 / output2 in condition,即是用来判断是否需要进行计算; 2. 计算需要分步骤进行。大致是先根据原始数据,计算原始数据的x1值(该步骤已经执行)。再根据x1值,计算相应的x1x2值,和x3值。然后将x1x2和x3拼接起来。 3. 数据量是10W行,为时间数据。。分两种情况进行计算(也就是两种情况的结果输出)。一种是每行时间数据,均要输出一个结果。另一种是对某个字段进行分组,然后根据分组来输出计算结果(比如企业)。 具体代码如下: ``` t05 = time.time() #计算x1x2和x3的值(x1值已计算出来) for i in std_level: max_std,min_std,l_1,l_2,l_3,l_4,l_5 = std_level[i][0] #生成标准的数据表,用于对照取值 #对原x1的字段的空值填充为0,方便跳过数值0进行数据处理。同时便于后期与目标值比较。 if output1 in condition: #这个情况,是根据用户需求,进行相应的输出。如用户有需求,则执行下面的代码 data['%s_x1'%i].fillna(0,inplace =True) if output2 in condition: f_data['%s_x1'%i].fillna(0,inplace =True) #定义x1x2的函数 #x1为原始数据对应的等级,值为1--6(如原数据缺失,则为空值。为便于判断,需将x1的缺失值填充为0) #原则是,如x1(数据等级)为空值,则不进行判定(返回空值)。如等级为1或6,单独计算。如等级介于1和6之间,则统一计算。 def tran_x1x2(x): dj = x['%s_x1'%i] jc = x[i] if dj == 0: return np.NaN #务必要返回np.NaN,否则返回空字符串None,影响后面x2的计算。 else: if dj not in [1,6]: #根据介于等级1和6之间时的x1x2的计算公式 up = std_level[i][0][int(dj)] dn = std_level[i][0][int(dj)+1] return round(dj + (up - jc) / (up -dn),1) else: if dj == 1: return 1.0 else: return round(dj + (l_5 - jc) / l_5 * 4,1) #需事先定义好x1x2的函数,方能进行apply。而x1x2的函数定义,又需要事先对x1填充。。所以需要将条件判断,分开两次重复进行 #本来考虑可以将条件判断合并到一起。。但是这样会增加重复的代码量,而且不能保证提高速度。 #我也想用函数的方式来处理,但是不知道如何实现。。具体结构该怎么弄。。。 if output1 in condition: data['%s_x1x2'%i] = data.apply(tran_x1x2,axis=1) #生成实时数据的x1x2 if output2 in condition: f_data['%s_x1x2'%i] = f_data.apply(tran_x1x2,axis=1) #生成综合数据的x1x2 #注意顺序,需先计算x1x2的值,才能计算x3的值 def tran_x3(x): dj = x['%s_x1'%i] dj_x1x2 = x['%s_x1x2'%i] dj_x2 = (dj_x1x2 - dj) *10 #计算x2的值。不建议单独生成x2字段,否则字段过多,影响调试查看。 if dj == 0: #等级数据不可能为0,其值原为空值,只是为了便于比较,将空值填充为0处理(第7/9行代码中实现)。 return np.NaN else: if dj <= x['TARGET']: #[‘TARGET’]为目标字段,用于比较 return 0 else: if dj_x2 == 0: return dj - x['TARGET'] -1 else: return dj - x['TARGET'] #新的x3存在空值的情况,需要事先填充 if output1 in condition: #这个情况,是根据用户需求,进行相应的输出。如用户有需求,则执行下面的代码 data['%s_x3'%i] = data.apply(tran_x3,axis=1) #生成实时数据的x3 data['%s_x3'%i].fillna(-1,inplace =True) #因x3可能为0,空值需填充为-1,以便区分和格式转换 data['%s_x1x2'%i] = data['%s_x1x2'%i].astype(str) #转字符格式,方便拼接 data['%s_x3'%i] = data['%s_x3'%i].astype(int).astype(str) data['%s_x1x2x3'%i] = np.where(data['%s_x3'%i]!= '-1',data['%s_x1x2'%i]+data['%s_x3'%i],np.NaN) #生成单因子标识指数 data['%s_x1x2x3'%i] = data['%s_x1x2x3'%i].astype(float) #求X1X2前,需记得将字符串转浮点型格式,否则无法求均值。 if output2 in condition: f_data['%s_x3'%i] = f_data.apply(tran_x3,axis=1) #生成综合数据的x3 f_data['%s_x3'%i].fillna(-1,inplace=True) f_data['%s_x1x2'%i] = f_data['%s_x1x2'%i].astype(str) #转字符格式,方便拼接 f_data['%s_x3'%i] = f_data['%s_x3'%i].astype(int).astype(str) f_data['%s_x1x2x3'%i] = np.where(f_data['%s_x3'%i]!= '-1',f_data['%s_x1x2'%i] + f_data['%s_x3'%i],np.NaN) f_data['%s_x1x2x3'%i] = f_data['%s_x1x2x3'%i].astype(float) t06 = time.time() print(t06-t05) ``` 这段代码,我用10W行的数据来跑,用了24秒左右。。 我发现其中比较耗时的就是要输出output1的计算。。。这个就是计算每行数据的结果,计算量可能较大。 个人觉得代码还有较大的提升空间,只是水平有限,实在不知道如何优化。。 求高手指点

python读取dat文件数据

dat文件中的数据已用IDL读取,可获取到3维数组,表示的是跨越一段时间的一个地理区域的植被信息; 现在,想要用python来读取同一个文件,识别成3维数组。 问题:用python具体怎样操作呢,能否提供具体的代码呢,尝试着可以之后再去理解。 跪求大神的帮助,万分期待与感谢。 总共就5个币,全给了哈! 首先,非常感谢大家的回答,现对问题补充如下: 11.7GB 大小的dat数据文件,使用readline循环读出,却显示只有4行,而且显示乱码 ,判断了编码格式,结果如下: ![图片说明](https://img-ask.csdn.net/upload/201603/11/1457661134_786702.png)

python中使用PIL读取图片,这个图片应事先保存在哪里?

使用代码: #!/usr/bin/env python # -*- coding:utf-8 -*- import PIL from PIL import Image im=Image.open('tiananmen.jpg') im.show() 运行结果: ![图片说明](https://img-ask.csdn.net/upload/201707/31/1501485969_603726.png) 谢谢大家的建议,尽管没有解决我的问题。 我重新下载了PIL,然后就可以了

Perl读取一个文件夹AAA下的多个子目录中的pssm.tx中文件的内容?

Perl读取一个文件夹AAA下的多个子目录中的pssm.tx中文件的内容?也就是每个子目录下都有一同名的pssm.txt文件,她说矩阵,我要矩阵的一部分尽兴计算,可是现在我都读不到pssm.txt文件里!

python os.listdir 读取德语字符文件夹的问题

请教个问题。在windows上建立一个文件夹, 名字叫 Göran.Söllscher 。 后发现想用python os.listdir 然后给这个文件夹改个名字, 会提示 找不到, 其他文件名的都搞定了 现象就是 python os.listdir 返回的都是 gbk 编码的 文件名, 可 上述的文件名, 其中的 ö 是不在gbk编码里面的, 所以获取的 目录名是 G?ran.S?llscher, 所以 提示找不到 好奇怪,大家都可以试试,求个原因

python像普通软件一样,打开文件夹导入鼠标选定的文件进行处理

感觉python导入数据文件太过呆板,用来做数据分析不太方便, 希望可以打开一个文件夹,导入需要的数据文件

如何用python读取一个RGB图成ndarray?

被赶鸭子上架学tensorflow。。。python都是现学所以。。。 我按照网上教程做了一个基于CIFAR-10的模型,现在想要输入一个外部任意图来确认是否能识别。 我已经把外部图处理成了32X32的RGB,用二进制保存成文件image.rgb。 希望能用python读出图片并用相同的方式处理(numpy.ndarray)以求得到准确的结果。 CIFAR的处理截取如下: ``` def load_CIFAR10_batch(filename): '''load data from single CIFAR-10 file''' with open(filename, 'rb') as f: if sys.version_info[0] < 3: dict = pickle.load(f) else: dict = pickle.load(f, encoding='latin1') x = dict['data'] y = dict['labels'] print(type(x)) x = x.astype(float) y = np.array(y) return x, y def load_data(): '''load all CIFAR-10 data and merge training batches''' xs = [] ys = [] for i in range(1, 6): filename = 'cifar-10-batches-py/data_batch_' + str(i) X, Y = load_CIFAR10_batch(filename) xs.append(X) ys.append(Y) x_train = np.concatenate(xs) y_train = np.concatenate(ys) # print("shape: ", x_train.shape, y_train.shape) del xs, ys ``` 请问这边读取的代码要如何写。。。 谢谢 ======================== 补充一下,图片保存的格式是unsigned char,我试了好多办法,有几个都是错在这个上面。。。 ======================== 补充2:读出的bytes部分如下,怎么把每个字节都变成ndarry的一项呢? b'\x9a', b'\x9b', b'\x9c', b'\x9d', b'\xa1', b'\x9d', b'\x9e', b'\x9f', b'\x9d', b'\x9e', b'\x99', b'\x9c', b'\x9a', b'\x9b', b'\x9c', b'\x9a', b'\x9b', b'\x9a', b'\x99', b'\x99', b'\x9a', b'\x9a', b'\x99', b'\x99', b'\x9a', b'\x9a', b'\x9b', b'\x9b', b'\x9a', b'\x9b', b'\x9c', b'\x9c', b'\x9c', b'\x9c', b'\x94', b'\x9d', b'\xa3', b'\xa0', b'\x9f', b'\x9f', b'\xa1', b'\x9e', b'\x97', b'\x9b', b'\x97', b'\x99', b'\x9c', b'\x98', b'\x9b', b'\x9b', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x99', b'\x9a', b'\x9a', b'\x9b', b'\x9b', b'\x9a', b'\x9b', b'\x9b', b'\x9c', b'\x97', b'\x95', b'\x95', b'\x98', b'\xa5', b'\x8d', b'v', b'\x87', b'\x9f', b'\x9e', b'\x9a', b'\x9a', b'\x9b', b'\x98', b'\x99', b'\x9d', b'\x9b', b'\x9b', b'\x9b', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x9b', b'\x9b', b'\x9a', b'\x9a', b'\x9b', b'\x9b', b'\x97', b'\x93', b'\x95', b'\x9d', b'\xa3', b'`', b'w', b'm', b'\x9a', b'\x9c', b'\x9b', b'\x98', b'\x9b', b'\x97', b'\x97', b'\x9c', b'\x9b', b'\x9b', b'\x9b', b'\x9b', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x99', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x92', b'\x91', b'\x95', b'\x8b', b'd', b'=', b'6', b'H', b'\x86', b'\xa3', b'\x99', b'\x9b', b'\x96', b'\x99', b'\x9e', b'\x99', b'\x9a', b'\x9b', b'\x9b', b'\x9b', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x99', b'\x9a', b'\x9a', b'\x9a', b'\x99', b'\x99', b'\x99', b'\x9a', b'\x96', b'\x95', b'\x9a', b']', b'W', b'f', b'$', b'\x13', b'Q', b'\xa5', b'\x9a', b'\x9d', b'\x98', b'\x9b', b'\x9c', b'\x9a', b'\x99', b'\x9a', b'\x9a', b'\x9b', b'\x9a', b'\x9a', b'\x9a', b'\x9a', b'\x99', b'\x9a', b'\x99', b'\x99', b'\x99', b'\x99', b'\x99', b'\x9a', b'\x94', b'\x97', b'z', b'u', b'x', b'~', b'g', b'2', b'"', b'\x8a', b'\x9f', b'\x98', b'\x9a', b'\x97', b'\x94', b'\x99', b'\x98', b'\x99', b'\x99', b'\x9a', b'\x9a', b'\x9b', b'\x9a', b'\x9a', b'\x9a', b'\x99', b'\x99', b'\x98', b'\x98', b'\x98', b'\x99', b'\x9a', b'\x95', b'\x97', b'x', b'q', b'q', b'{', b'\x82', b'_', b'\x1d', b'j', b'\xa9', b'\x98', b'\x99', b'\x97', b'\x98', b'\x97', b'\x98', b'\x98', b'\x98', b'\x99', b'\x9a', b'\x9b', b'\x9a', b'\x9a', b'\x9a', b'\x99', b'\x99', b'\x98', b'\x97', b'\x98', b'\x99', b'\x9a', b'\x92', b'\x9a', b'u', b'R', b'h', b's', b'\x89', b'\x7f', b'I', b'C', b'\x93', b'\xa0', b'\x91', b'\x95', b'\x97', b'\x99', b'\x98', b'\x9b', b'\x97', b'\x99', b'\x9c', b'\x99', b'\x98', b'\x9a', b'\x9a', b'\x99', b'\x99', b'\x98', b'\x98', b'\x97', b'\x98', b'\x9a', b'\x94', b'\x9c', b'\x83', b'?', b'P', b'i', b'\x8d', b'\x9f', b'\x90', b'`', b';', b'z', b'\x9d', b'\x91', b'\x99', b'\x98', b'\x9c', b'\x9a', b'\x98', b'\x99', b'\x98', b'\x99', b'\x9a', b'\x99', b'\x97', b'\x98', b'\x98', b'\x99', b'\x99', b'\x98', b'\x98', b'\x99', b'\x93', b'\x95', b'\x9e', b'_', b'7', b'\\', b'\x8a', b'\x9b', b'\x95', b'\x89', b'K', b' ', b'y', b'\x9a', b'\x8f', b'\x9c', b'\x9b', b'\x99', b'\x9b', b'\x9b', b'\x98', b'\x96', b'\x95', b'\x97', b'\x96', b'\x97', b'\x98', b'\x98', b'\x99', b'\x99', b'\x9a', b'\x99', b'\x92', b'\x9a', b'\x93', b'\x8f', b')', b'0', b'\x87', b'\x92', b'\x91', b'\x98', b'n', b'\x16', b'1', b'\x9f', b'\x96', b'\x97', b'\x9e', b'\x9d', b'\x99', b'\x95', b'\x99', b'\x9a', b'\x94', b'\x94', b'\x96', b'\x97', b'\x97', b'\x97', b'\x97', b'\x99', b'\x9a', b'\x9a', b'\x96', b'\x8e', b'\x92', b'\x98', b'f', b'3', b'\x81', b'\x8f', b'\x99', b'\x9b', b'\x82', b'H', b'\x18', b'Z', b'\xa1', b'\x98', b'\x97', b'\x9a', b'\x9a', b'\x96', b'\x97', b'\x99', b'\x97', b'\x95', b'\x95', b'\x96', b'\x97', b'\x97', b'\x97', b'\x99', b'\x99', b'\x99', b'\xa1', b'\x92', b'\x91', b'\x94', b'\x82', b'o', b'q', b'\x8f', b'\x99', b'\x96', b'\x97', b'`', b'\r', b'\x16', b'B', b'\x8c', b'\xa2', b'\x9d', b'\x9a', b'\x9c', b'\x97', b'\x93', b'\x97', b'\x96', b'\x95', b'\x95', b'\x97', b'\x99', b'\x9a', b'\x99', b'\x98', b'\x98', b'\x99', b'\x98', b'\x91', b'\x94', b'\x83', b'x', b'j', b'u', b'\x9a', b'\xa0', b'~', b'@', b'\x1a', b'$', b'\x18', b',', b'\x8d', b'\x9e', b'\x99', b'\x97', b'\x99', b'\x95', b'\x96', b'\x94', b'\x95', b'\x94', b'\x96', b'\x9a', b'\x9b', b'\x99', b'\x98', b'\x98', b'\xa1', b'\x95', b'\x8f', b'\x94', b'\x8a', b's', b'j', b'b', b'\x83', b'\xa3', b'\x84', b'H', b'1', b'4', b'+', b'"', b',', b'\x87', b'\xa2', b'\x95', b'\x9a', b'\x97', b'\x95', b'\x95', b'\x95', b'\x92', b'\x93', b'\x97', b'\x99', b'\x97', b'\x96', b'\x99', b'\x9e', b'\x98', b'\x92', b'\x92', b'\x8a', b'{', b'b', b'r', b'u', b'\x9b', b'\x8e', b'A', b'E', b'M', b'6', b' ', b'\x15', b'-', b'\x97', b'\x9a', b'\x96', b'\x97', b'\x99', b'\x94', b'\x96', b'\x93', b'\x8e', b'\x95', b'\x96', b'\xa0', b'\x9c', b'\x96', b'\x9f', b'\x95', b'\x92', b'\x96', b'\x90', b'~', b'o', b'n', b'i', b'l', b'P', b'E', b':', b'L', b"'", b'\x16', b'\x11', b'\t', b'E', b'\x9f', b'\x96', b'\x98', b'\x95', b'\x97', b'\x94', b'\x96', b'\x83', b'\x89', b'\x94', b'Z', b'\x89', b'\x98', b'\x9e', b'\x95', b'\x92', b'\x93', b'\x92', b'\x86', b'\x80', b'e', b'd', b'H', b'4', b'?', b'\x1d', b'=', b'5', b'\x13', b'\x11', b'\x12', b'\x0b', b'i', b'\xa2', b'\x98', b'\x95', b'\x99', b'\x98', b'\x92', b'\x86', b'\x89', b'\x83', b'\x00', b'N', b'\xa1', b'\x9b', b'\x94', b'\x91', b'\x90', b'\x91', b'\x8b', b'\x8a', b'n', b'`', b'Q', b'\x1c', b'/', b'9', b'6', b'@', b'-', b' ', b'\x11', b'\x19', b'\x1e', b'\x8a', b'\x95', b'\x95', b'\x95', b'\x95', b'\x93', b'\x88', b'\x8a', b'g', b'\x00', b'@', b'\x9d', b'\x9b', b'\x92', b'\x90', b'\x93', b'\x92', b'\x8d', b'\x8c', b'\x87', b'@', b'+', b'*', b'$', b',', b'\x1c', b'3', b'<', b'#', b'\x1d', b'#', b'\x1e', b'[', b'\x9c', b'\x8f', b'\x93', b'\x8f',

Python批量根文件夹下的处理xml

用python写了一个处理xml的文件,输入的格式是:saxparser.parse(sys.stdin) 然后在命令行里重定向标准输入为所要解析的xml,这样一次只能解析一个xml文件,但我要处理的xml有很多,大概分布在一个根文件夹中的若干个子文件夹,名称的格式为"*.apf.xml" 应该怎么办呢?

递归一个文件夹下的所有文件以及文件夹,造成内存溢出问题

我需要递归一个文件夹下所有的文件并进行操纵,文件夹下也有文件夹,我用一个list存储递归得到的所有文件可能会造成溢出。我需要当此list为10000时候执行,然后清空list,请问如何实现。代码如下: static void getFiles(String filePath){ File root = new File(filePath); File[] files = root.listFiles(); for(File file:files){ if(file.isDirectory()){//是否为文件夹 getFiles(file.getAbsolutePath()); filelist.add(file.getAbsolutePath());//filelist是ArrayList,用来存储所有文件路径; }else{ //对文件的操作; } 请问我改如何修改才能让程序在flielist大小每当10000执行一次,然后在将其清空,继续执行,不至于让filelist太大从而解决内存溢出问题。本人线程比较菜,求大神帮忙。最好能在此代码上修改。

python如何操作HDFS读取Mapfile 文件

请问使用python可以读取HDFS的MapFile文件吗?如果可以,相关API是什么啊?在线等。。。

python读取中文目录出现乱码

问题是这样的:用python写的程序,去读取一些目录和文件进行处理:比如说其中的中文目录名如下: 示波器,曲线,卡哇伊小屋等等。然后比如示波器文件夹下面有下面文件:0.htm,0.png,示波器.mp4 我写的目录和文件访问程序如下: #根据绝对路径获取目录下面所有的文件的绝对路径,文本信息全部用txt文件,图片信息全部用png文件,视频信息 def getFiles_fromAbsPath(inputDir): curPath = os.getcwd() # 靠必须要拆分成多个路径,否则不能通过 os.chdir(inputDir) #主要是为了获取sequence.txt文件(如果问题是这样的:用python写的程序,去读取一些目录和文件进行处理:比如说其中的中文目录名如下: 示波器,曲线,卡哇伊小屋等等。然后比如示波器文件夹下面有下面文件:0.htm,0.png,示波器.mp4 我写的目录和文件访问程序如下: #根据绝对路径获取目录下面所有的文件的绝对路径,文本信息全部用txt文件,图片信息全部用png文件,视频信息 def getFiles_fromAbsPath(inputDir): curPath = os.getcwd() # 靠必须要拆分成多个路径,否则不能通过 os.chdir(inputDir) #主要是为了获取sequence.txt文件(如果存在的话) textInputDirs = [x for x in os.listdir('.') if os.path.isfile(x) and x.endswith("sequence.txt")] pictureInputDirs = [x for x in os.listdir('.') if os.path.isfile(x) and x.endswith(".png") ] #htm只需要返回0.htm进行处理 htmInputDirs = [x for x in os.listdir('.') if os.path.isfile(x) and x.endswith("0.htm") ] #获取视频的地址 videoInputDirs = [x for x in os.listdir('.') if os.path.isfile(x) and x.endswith(".mp4") ] #print inputDirs realTextInputDirs = [] realPictureInputDirs = [] realHtmInputDirs = [] realVideoInputDirs = [] for path in textInputDirs: realTextInputDirs.append(os.path.abspath(path)) for path in pictureInputDirs: realPictureInputDirs.append(os.path.abspath(path)) for path in htmInputDirs: #realHtmInputDirs.append(os.path.abspath(path)) realHtmInputDirs.append(os.path.join(inputDir , path)) for path in videoInputDirs: realVideoInputDirs.append(os.path.abspath(path)) os.chdir(curPath) sequenceFileName = "" videoFileName = "" if realTextInputDirs: sequenceFileName = realTextInputDirs[0] if realVideoInputDirs: videoFileName = realVideoInputDirs[0] return sequenceFileName,realPictureInputDirs,realHtmInputDirs[0] , videoFileName 但是用0.htm得到的绝对路径去读取该文件的的时候 fr = open(sFileName, "r"),这个sFileName是读取的0,htm的绝对路径,但是发生错误,看了调试信息: ​这个时候文件的路径变成了: 'E:\\MyProject\\SVN_Project\\Drawingboard_local\\model\\mydata\\input\\production\\һ�ɳ���0.htm' 中文的路径:"示波器"没了 正确的路径是: 'E:\\MyProject\\SVN_Project\\Drawingboard_local\\model\\mydata\\input\\production\\示波器\\0.htm' 而且乱码导致了:"示波器"和它后面的"\\"都在一起了,所以读0.htm文件立刻程序崩溃。 我在python文件中加了: # *-* coding: utf-8 *-* import sys reload(sys) sys.setdefaultencoding("utf-8") 还是没有用 朋友们,能指导一下:python如何读取中文目录而不乱码吗,十分感谢

Python 我写的一个文件上传,从桌面上上传一张图片到D盘下的upload文件夹里报错

上传路径不存在,感觉没错呀![![图片说明](https://img-ask.csdn.net/upload/201710/24/1508830362_381837.png)图片说明](https://img-ask.csdn.net/upload/201710/24/1508830352_847399.png)

【python】用python读取txt并按规则写入excle

![图片说明](https://img-ask.csdn.net/upload/201903/28/1553756964_633544.jpg) 对于这个问题,我写的代码是这样的 ``` # coding: utf-8 import csv TITLE = "【来源篇名】" AUTHOR = "【来源作者】" ORG = "【第一机构】" KEYWORD = "【关 键 词】" REFER = "【参考文献】" # By WilliamsCarl。2019/3/24 2:21。 # 作者:王木槿天下第一。Copyright. item_start = True refer_start = False headers = [TITLE, AUTHOR, ORG, KEYWORD, REFER] items = [] with open('E:\\textOut.txt', encoding='gbk') as f: row = { 'refer': [] } for line in f.readlines(): line = line.strip() # if not line: # continue if TITLE in line: column = 0 tl = line.split(TITLE)[1] refer_start = False row['tl'] = tl if AUTHOR in line: column = 1 au = line.split(AUTHOR)[1] row['au'] = au if ORG in line: column = 2 og = line.split(ORG)[1] row['og'] = og if KEYWORD in line: column = 3 kw = line.split(KEYWORD)[1] row['kw'] = kw if REFER in line: refer_start = True continue if refer_start: row['refer'].append(line) if refer_start and (not line): refer_start = False item = [row['tl'], row['au'], row['og'], row['kw']] for r in row['refer']: item.append(r) items.append(item) row = { 'refer': [] } with open('E:\\result.csv','w') as c: f_csv = csv.writer(c) f_csv.writerow(headers) f_csv.writerows(items) ``` **目前的问题是, 比如【来源篇名】某一组不存在,他就会说keyerror,** ![图片说明](https://img-ask.csdn.net/upload/201903/28/1553757557_16466.png) **当我将 i= [row['tl'], row['au'], row['og'], row['kw']] 变成row.setdefult,他的过滤又将一些存在的东西过滤掉了,如下图,** ![图片说明](https://img-ask.csdn.net/upload/201903/28/1553758231_316518.png) ![图片说明](https://img-ask.csdn.net/upload/201903/28/1553758055_824889.png) ![图片说明](https://img-ask.csdn.net/upload/201903/28/1553758108_472763.png)

python读取文本文件的特定内容

图片是一个数据集片段,如何写一段Python代码,提取文件中的id和text,如 3606464114611322 【中国一村庄上百村民移民澳大利亚 靠做电焊工拿绿卡】月入两三万,住200多平方米的房子…… 3606464897589553 #小午快报#【济南一个201户的村庄有100多村民移民澳大利亚】 3606465602473943 河南商报: 【济南有个村儿:100多名村民移民澳大利亚】 ![图片说明](https://img-ask.csdn.net/upload/201704/10/1491806376_581740.png)

【python】怎样用python读取txt并按规则写入excle

**求大神帮忙!可以给赞助一包烟钱** **将记事本中的 多组 同类型信息 通过python程序读取 写到excle中,效果如下** ![图片说明](https://img-ask.csdn.net/upload/201903/22/1553237325_339326.png) **记事本中信息开头括号里的内容就是列头** ![图片说明](https://img-ask.csdn.net/upload/201903/22/1553237334_331608.png) **效果如图,txt文本是如图的有规律的多组数据,将每组数据写入excle的一行,每组数据最后一项“成员”内容的数量不一定,就在同一行往后,一格一个。用python该怎么实现**

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c# 开发接口 c# 中方法上面的限制 c# java 时间戳 c#单元测试入门 c# 数组转化成文本 c#实体类主外键关系设置 c# 子函数 局部 c#窗口位置设置 c# list 查询 c# 事件 执行顺序
立即提问
相关内容推荐