鱼C论坛

 找回密码
 立即注册
查看: 1819|回复: 8

文件操作-找到文件并保存路径

[复制链接]
发表于 2018-4-6 11:04:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用户输入开始搜索的路径,查找该路径下(包含子文件夹内)所有的视频格式文件
(要求查找mp4,rmvb,avi的格式即可),并把创建一个文件(bedioList.txt)
存在所有找到的文件的路径

import os

def search_file(first_dir):
    os.chdir(first_dir)

    f = open('L:\\software\\PycharmProjects\\fishc\\文件\\vedioList.txt','w')
    for each in os.listdir(os.curdir):
        if os.path.split(each)[1] in ['.mp4','.rmvb','.avi']:
            f.writelines(os.getcwd() + os.sep + each)
        if os.path.isdir(each):
            search_file(each)
            os.chdir(os.pardir)
    f.close()

first_dir = input('请输入待查找的初始目录:')

search_file(first_dir)
#一直写不进去任何数据,不知道为什么。使用小甲鱼提供的代码就可以了。想知道自己的代码哪里出了问题,还请各位大佬不吝赐教。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-6 11:19:02 | 显示全部楼层
本帖最后由 塔利班 于 2018-4-6 11:22 编辑

split分割路径和文件
splitext分离文件和扩展名,你用错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-6 14:13:47 | 显示全部楼层
塔利班 发表于 2018-4-6 11:19
split分割路径和文件
splitext分离文件和扩展名,你用错了

是的,我改成splitext还是不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-6 14:28:05 | 显示全部楼层
塔利班 发表于 2018-4-6 11:19
split分割路径和文件
splitext分离文件和扩展名,你用错了

我把文件写入操作放在函数外就好了,可能是在函数内,我的工作路径一直在改变,所以写入不了的原因吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-6 14:30:47 | 显示全部楼层
S54061 发表于 2018-4-6 14:28
我把文件写入操作放在函数外就好了,可能是在函数内,我的工作路径一直在改变,所以写入不了的原因吧

不知道,我改了那个就好了,还有路径我是用自己的
你检查下路径
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-6 14:43:45 | 显示全部楼层
塔利班 发表于 2018-4-6 14:30
不知道,我改了那个就好了,还有路径我是用自己的
你检查下路径

一开始给的代码,应该是f.write()。我加了个打印的代码,也确实打印出来了。但是就是没有写入到文件内。
import os

def search_file(first_dir):
    os.chdir(first_dir)
    f = open('L:\\software\\PycharmProjects\\fishc\\文件\\vedioList.txt', 'w')
    for each in os.listdir(os.curdir):
        if os.path.splitext(each)[1] in ['.mp4','.rmvb','.avi']:
            print(os.getcwd() + os.sep + each + os.linesep)
            f.write(os.getcwd() + os.sep + each + os.linesep)
            #可以打印出来,但是没有写入到文件内
        if os.path.isdir(each):
            search_file(each)
            os.chdir(os.pardir)
    f.close()

first_dir = input('请输入待查找的初始目录:')

search_file(first_dir)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-6 14:47:52 | 显示全部楼层
S54061 发表于 2018-4-6 14:43
一开始给的代码,应该是f.write()。我加了个打印的代码,也确实打印出来了。但是就是没有写入到文件内。
...


writelines也可以,这里是OK的,问题在你的路径,
你发下你运行input输入和文件夹截图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-6 16:16:48 | 显示全部楼层
塔利班 发表于 2018-4-6 14:47
writelines也可以,这里是OK的,问题在你的路径,
你发下你运行input输入和文件夹截图

C:\Users\ZK\Desktop\捕获.JPG
C:\Users\ZK\Desktop\捕获1.JPG
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-6 16:19:21 | 显示全部楼层

路径应该没有问题,我调试过代码,用小甲鱼的代码,换成我的路径就是可以的。
具体问题出在什么还真不知道,
不过还是谢谢你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 16:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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