鱼C论坛

 找回密码
 立即注册
查看: 2572|回复: 2

[已解决]文本路径的 问题,很奇怪,求解

[复制链接]
发表于 2020-2-7 10:21:40 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 要学习 于 2020-2-7 10:25 编辑

我的这句代码有错吗? 目的是实现:把 date文件夹里 txt文本为空的打印出来。。。
(这代码直接放到date文件夹里运行 是可以的。)


但是执行后 ,若date文件夹里 有其他非空文本文件时,代码就会报错。

#文件是否为空
and os.stat(filename).st_size == 0

我这样写 也不行,一样的报错。

and os.path.getsize(filename) == 0

当我去掉  and 后面的这句后。能把date文件夹下 所有txt文件打印出来

  1. import os
  2. import os.path
  3. rootdir =os.path.join( os.path.abspath('.') + "\\date")

  4. print(rootdir)

  5. for (dirpath,dirnames,filenames) in os.walk(rootdir):
  6.     for filename in filenames:
  7.         if os.path.splitext(filename)[1]=='.txt'and os.stat(filename).st_size == 0:
  8.             print (filename)
复制代码



========================= RESTART: K:\py code\1\k.py =========================
K:\py code\1\date
Traceback (most recent call last):
  File "K:\py code\1\k.py", line 15, in <module>
    if os.path.splitext(filename)[1]=='.txt'and os.stat(filename).st_size == 0:
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: '2019110608.txt'
>>>


date文件夹里 空文本和非空文本都有的。
最佳答案
2020-2-7 13:11:44
本帖最后由 hrp 于 2020-2-7 14:03 编辑
要学习 发表于 2020-2-7 10:26
这个是什么原因。。。

请各位帮忙。谢谢


计算文件大小要给完整的文件路径,你只给了一个文件名。(或者把工作目录设置为该txt所在目录,就不需要完整路径)
  1. import os

  2. # rootdir = os.path.join( os.path.abspath('.') + "\\date") join不是这么用的吧
  3. rootdir = os.path.join(os.path.abspath("."), "date")
  4. # pycharm 或者 vscode 里以上获取到的不是执行py文件所在路径
  5. # 据说这样才可以:
  6. #rootdir = os.path.join(os.path.dirname(os.path.realpath(__file__), "date")

  7. print(rootdir)

  8. for (dirpath, dirnames, filenames) in os.walk(rootdir):
  9.     for filename in filenames:
  10.         if os.path.splitext(filename)[1] == ".txt" and os.stat(os.path.join(dirpath, filename)).st_size == 0:
  11.             print(filename)
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-7 10:26:17 | 显示全部楼层
这个是什么原因。。。

请各位帮忙。谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-7 13:11:44 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 hrp 于 2020-2-7 14:03 编辑
要学习 发表于 2020-2-7 10:26
这个是什么原因。。。

请各位帮忙。谢谢


计算文件大小要给完整的文件路径,你只给了一个文件名。(或者把工作目录设置为该txt所在目录,就不需要完整路径)
  1. import os

  2. # rootdir = os.path.join( os.path.abspath('.') + "\\date") join不是这么用的吧
  3. rootdir = os.path.join(os.path.abspath("."), "date")
  4. # pycharm 或者 vscode 里以上获取到的不是执行py文件所在路径
  5. # 据说这样才可以:
  6. #rootdir = os.path.join(os.path.dirname(os.path.realpath(__file__), "date")

  7. print(rootdir)

  8. for (dirpath, dirnames, filenames) in os.walk(rootdir):
  9.     for filename in filenames:
  10.         if os.path.splitext(filename)[1] == ".txt" and os.stat(os.path.join(dirpath, filename)).st_size == 0:
  11.             print(filename)
复制代码

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 23:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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