|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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文件打印出来
- import os
- import os.path
- rootdir =os.path.join( os.path.abspath('.') + "\\date")
- print(rootdir)
- for (dirpath,dirnames,filenames) in os.walk(rootdir):
- for filename in filenames:
- if os.path.splitext(filename)[1]=='.txt'and os.stat(filename).st_size == 0:
- 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文件夹里 空文本和非空文本都有的。
本帖最后由 hrp 于 2020-2-7 14:03 编辑
要学习 发表于 2020-2-7 10:26
这个是什么原因。。。
请各位帮忙。谢谢
计算文件大小要给完整的文件路径,你只给了一个文件名。(或者把工作目录设置为该txt所在目录,就不需要完整路径)
- import os
- # rootdir = os.path.join( os.path.abspath('.') + "\\date") join不是这么用的吧
- rootdir = os.path.join(os.path.abspath("."), "date")
- # pycharm 或者 vscode 里以上获取到的不是执行py文件所在路径
- # 据说这样才可以:
- #rootdir = os.path.join(os.path.dirname(os.path.realpath(__file__), "date")
- print(rootdir)
- for (dirpath, dirnames, filenames) in os.walk(rootdir):
- for filename in filenames:
- if os.path.splitext(filename)[1] == ".txt" and os.stat(os.path.join(dirpath, filename)).st_size == 0:
- print(filename)
复制代码
|
|