import os list1 = [] #用于存放所有文件的绝对路径 list2 = [] #用于存放目标文件(01.png)的绝对路径 file_name = "pressure.out" ##1.获取所有文件的绝对路径 for root, dirs, files in os.walk(".", topdown=False): for name in files: list1.append(os.path.join(root, name)) # print(list1) ##2.获取目标文件(01.png)绝对路径列表 for i in list1: if file_name in i: list2.append(i) ##3.遍历list2并将目标文件(01.png)复制到根目录下 for j in list2: # print(j) with open(j,"rb") as png1: file0 = png1.read() str_name = j.replace("\\","_") #将路径中的"\\"替换为"_" with open("./{}.{}".format(str_name[2:len(str_name)-4], file_name[file_name.rfind(".")+1:]),"wb") as newfile: newfile.write(file0)
时间: 2024-04-23 17:29:14 浏览: 19
这段代码的作用是将指定文件(pressure.out)复制到根目录下。具体流程如下:
1. 首先导入了os模块。
2. 创建了两个空列表list1和list2,分别用于存放所有文件的绝对路径和目标文件(01.png)的绝对路径。
3. 使用os.walk()函数遍历当前目录及其子目录中的所有文件,并将它们的绝对路径添加到list1中。
4. 遍历list1,如果文件名包含目标文件名(pressure.out),则将其绝对路径添加到list2中。
5. 遍历list2,依次打开目标文件并读取内容,将路径中的"\\"替换为"_"作为新文件名。
6. 最后,将读取的内容写入以新文件名和目标文件后缀命名的文件中。
请注意,这段代码是基于Python语言编写的,用于在当前目录及其子目录中查找指定文件并复制到根目录下。
相关问题
python将list中的numpy.array存到本地.png文件
在Python中,我们可以使用PIL(Python Imaging Library)库来将list中的numpy.array存到本地.png文件。以下是具体步骤:
1. 首先,导入需要的库:
from PIL import Image
import numpy as np
2. 将list中的numpy.array转化为图片格式,可以先将其转化为numpy.array类型再使用Image.fromarray()函数转化为图片格式。例如:
arr_list = [np.array([[1, 2, 3], [4, 5, 6]], dtype=np.uint8),
np.array([[10, 20, 30], [40, 50, 60]], dtype=np.uint8)]
for i, arr in enumerate(arr_list):
im = Image.fromarray(arr)
3. 将图片存储到本地.png文件,可以使用Image.save()函数。例如:
im.save(f'array_{i}.png')
完整的代码实现如下:
from PIL import Image
import numpy as np
arr_list = [np.array([[1, 2, 3], [4, 5, 6]], dtype=np.uint8),
np.array([[10, 20, 30], [40, 50, 60]], dtype=np.uint8)]
for i, arr in enumerate(arr_list):
im = Image.fromarray(arr)
im.save(f'array_{i}.png')
这样就成功将list中的numpy.array存到本地.png文件了。
def getPhoto(): #path_photo = 'C:/Users/sxq/PycharmProjects/pythonProject/ZGCS/' # 所有photo所在的文件夹目录 for file_name in os.listdir(path): # 判断是否为图片文件 if file_name.lower().endswith(('.jpg', '.png', '.bmp', '.tiff')): # 得到图片路径 image_name = os.path.basename(file_name) #image_path = os.path.dirname(path) files_list = os.listdir(path) # 得到文件夹下的所有文件名称,存在字符串列表中 print(files_list) #print(image_path) #print(file_name) # 打印path_photo文件夹下的所有文件 print(image_name) return image_name
这段代码的作用是遍历指定文件夹中的所有文件,如果文件是图片,则将其路径保存到一个字符串数组中并返回最后一个文件的名称。但是,这段代码存在一些问题:
1. 函数定义中的注释和函数体中的代码不一致,函数体中的代码与注释所描述的代码并不匹配。
2. 函数体中的代码缺少一个 `path` 变量的定义。根据注释所描述的路径,`path` 的值应该是 `'C:/Users/sxq/PycharmProjects/pythonProject/ZGCS/'`,但是这个值没有在函数体中定义。
3. 函数体中的代码将 `image_name` 变量赋值为 `os.path.basename(file_name)`,这是不正确的。正确的做法应该是 `os.path.join(path, file_name)`。
以下是我对这段代码的修改,希望可以帮助你解决问题:
```python
import os
def getPhoto():
path = 'C:/Users/sxq/PycharmProjects/pythonProject/ZGCS/' # 所有photo所在的文件夹目录
image_paths = [] # 保存所有图片的路径
for file_name in os.listdir(path): # 遍历文件夹中的所有文件
if file_name.lower().endswith(('.jpg', '.png', '.bmp', '.tiff')): # 判断是否为图片文件
image_path = os.path.join(path, file_name) # 得到图片路径
image_paths.append(image_path) # 将图片路径保存到数组中
print(image_paths) # 打印所有图片的路径
return os.path.basename(image_paths[-1]) # 返回最后一个图片的文件名
```
这段代码会返回指定文件夹中最后一个图片文件的文件名,并打印出所有图片的路径。如果你有任何疑问,请随时问我!