设计函数get_pngs_from_pic将pic文件夹中所有*.png文件的绝对路径按cp936编码以文本的形式输出到imagepng.txt记事本中,每个*.png文件的绝对路径占imagepng.txt文件的一行,该函数包含两个默认值参数(图像文件夹参数、imagepng.txt的全路径)。编写函数get_pngs_from_bonn将bonn文件夹中*.png文件的全路径追加到imagepng.txt文件的尾部,该函数包含两个默认值参数(图像文件夹参数、imagepng.txt的全路径)。编写函数read_png_fullpath_bytext (), 以字符串列表的形式返回imagepng.txt文件的内容,该函数包含一个默认值参数txtpath, 调用read_png_fullpath_bytext (),逐行打印imagepng.txt文件的内容。
时间: 2024-03-23 09:43:05 浏览: 144
png动图测试器.zip_png动起来_separaterxf_动图
以下是实现上述功能的代码:
```python
import os
def get_pngs_from_pic(img_folder='pic', txt_path='imagepng.txt'):
with open(txt_path, 'w', encoding='cp936') as f:
for file_name in os.listdir(img_folder):
if file_name.endswith('.png'):
f.write(os.path.join(os.path.abspath(img_folder), file_name) + '\n')
print(f'Successfully saved the png paths to {txt_path}')
def get_pngs_from_bonn(img_folder='bonn', txt_path='imagepng.txt'):
with open(txt_path, 'a', encoding='cp936') as f:
for file_name in os.listdir(img_folder):
if file_name.endswith('.png'):
f.write(os.path.join(os.path.abspath(img_folder), file_name) + '\n')
print(f'Successfully appended the png paths from {img_folder} to {txt_path}')
def read_png_fullpath_bytext(txtpath='imagepng.txt'):
with open(txtpath, 'r', encoding='cp936') as f:
return f.readlines()
# Example usage
get_pngs_from_pic()
get_pngs_from_bonn()
paths = read_png_fullpath_bytext()
for path in paths:
print(path.strip())
```
在这个代码中,我们使用了Python内置的`os`模块来操作文件和文件夹。`get_pngs_from_pic`函数通过`os.listdir`函数遍历文件夹中的所有文件,判断文件名是否以`.png`结尾,然后将绝对路径写入到指定的文本文件中。`get_pngs_from_bonn`函数同样使用`os.listdir`函数遍历文件夹中的所有文件,将符合条件的文件路径追加到指定的文本文件中。`read_png_fullpath_bytext`函数使用`open`函数以只读模式打开指定的文本文件,并使用`readlines`函数读取所有行并返回一个字符串列表。
最后,我们通过调用这些函数来实现上述功能。注意,在`read_png_fullpath_bytext`函数返回的字符串列表中,每个字符串都包含了换行符,因此我们在打印时需要使用`strip`函数去除换行符。
阅读全文