鱼C论坛

 找回密码
 立即注册
查看: 1416|回复: 10

[已解决]py一个小练习,关于文件操作

[复制链接]
发表于 2020-6-3 22:00:50 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 Cria 于 2020-6-3 23:16 编辑

编写程序,打开指定目录下的所有jpeg格式的文件。(提示:jpeg格式文件的前三个字节为“0xFF0xD80xFF”)

参考代码
from os import listdir,startfile,chdir
from os.path import isfile
dir = input ('please input a directory:').replace('\\','/')
chdir(dir)
for fname in listdir(dir):
    if isfile(fname):
        with open(fname,'rb') as fp:
            content = fp.read(3)
        if content == b'\xFF\xD8\xFF':
            print('JPEG文件是:{}'.format(fname))
            print('打开文件。。。')
            startfile(fname)
最佳答案
2020-6-3 22:00:51
import os

path = input('请输入目录路径:')
os.chdir(path)
file_list = os.listdir(path)
for i in file_list:
    if i.split('.')[-1] == 'jpeg':
        with open(i,'rb') as f:
            if f.read(3) == b'\xFF\xD8\xFF':
                print('JPEG文件是:{}'.format(i))
                print('正在打开JPEG文件')
                os.startfile(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-3 22:00:51 | 显示全部楼层    本楼为最佳答案   
import os

path = input('请输入目录路径:')
os.chdir(path)
file_list = os.listdir(path)
for i in file_list:
    if i.split('.')[-1] == 'jpeg':
        with open(i,'rb') as f:
            if f.read(3) == b'\xFF\xD8\xFF':
                print('JPEG文件是:{}'.format(i))
                print('正在打开JPEG文件')
                os.startfile(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-3 22:01:41 | 显示全部楼层
学过好久,记不起了,感觉应该os模块肯定需要
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-3 22:03:14 | 显示全部楼层
>>> # Directory listing (decoded)
>>> import os
>>> os.listdir('.')
['jalapeño.txt']

>>> # Directory listing (raw)
>>> os.listdir(b'.') # Note: byte string
[b'jalapen\xcc\x83o.jpeg']

>>> # Open file with raw filename
>>> with open(b'jalapen\xcc\x83o.jpeg') as f:
...     print(f.read())
...
Spicy!
>>>[/code]

直接以字节打开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-3 22:04:11 | 显示全部楼层
Stubborn 发表于 2020-6-3 22:03
>>> # Directory listing (decoded)
>>> import os
>>> os.listdir('.')

你这速度太快了吧???我刚刚看完香蕉君的题目 你已经好了 秒男啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-3 22:04:47 | 显示全部楼层
二进制打开?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-3 22:08:30 | 显示全部楼层
Twilight6 发表于 2020-6-3 22:04
你这速度太快了吧???我刚刚看完香蕉君的题目 你已经好了 秒男啊

我还不是一楼的~每次看到你都在,你把我的代码整合下,写个函数出来,题主需要这个,最佳肯定是你的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-3 22:09:01 | 显示全部楼层
Stubborn 发表于 2020-6-3 22:08
我还不是一楼的~每次看到你都在,你把我的代码整合下,写个函数出来,题主需要这个,最佳肯定 ...

可以可以  那等我骚操作一波  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-3 22:56:04 | 显示全部楼层
怎么肥四,发生了什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-4 14:05:54 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-4 20:07:30 | 显示全部楼层
0.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 21:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表