os.stat()
中的哪些字段在Windows上填充了虚拟值?
python doc对此并不清楚。特别是,st_ino
在Windows上产生了什么?
有人可以在Windows上运行交互式python会话并让我知道吗?我没有Windows机器所以我不能这样做。
答案 0 :(得分:2)
这是一个测试运行:
C:\WINDOWS>echo test > test.txt
C:\WINDOWS>python
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.stat('test.txt')
nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0, st_nlink=0, st_uid=0, st_gid=
0, st_size=7L, st_atime=1299861919L, st_mtime=1299861919L, st_ctime=1299861919L)
>>>
答案 1 :(得分:2)
在Python 3.3.4中
>>> os.stat('.')
nt.stat_result(st_mode=16895, st_ino=1407374883604316, st_dev=0, st_nlink=1, st_uid=0,
st_gid=0, st_size=4096, st_atime=1392476826, st_mtime=1392476826, st_ctime=1392374365)
与旧版本st_ino
不同。
答案 2 :(得分:1)
Python 3.1.2说:
>>> os.stat("C:\\autoexec.bat")
nt.stat_result(st_mode=33279, st_ino=0, st_dev=0, st_nlink=0, st_uid=0, st_gid=0,
st_size=0, st_atime=1150614982, st_mtime=1150614982, st_ctime=1150614982)
答案 3 :(得分:1)
st_ino
,st_dev
,st_nlink
,st_uid
和st_gid
是Windows 7 SP1上的虚拟变量,通过 Python 2.7.11 强>:
import os; os.stat('Desktop\test.txt')
nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0L, st_nlink=0, st_uid=0, st_gid=0, st_size=293L, st_atime=1448376581L, st_mtime=1451782006L, st_ctime=1448376581L)
但是,从 Python 3.5.1 开始,它们似乎在Windows 7 SP1中充满了有意义的值:
import os; os.stat('Desktop\test.txt')
os.stat_result(st_mode=33206, st_ino=17732923532870243, st_dev=2289627604, st_nlink=2, st_uid=0, st_gid=0, st_size=293, st_atime=1448376581, st_mtime=1451782006, st_ctime=1448376581)
关于此主题的Python文档将引导理智的用户避免在Windows中使用os.stat
,因为无法保证任何字段始终/永远准确。在实践中,看起来st_size
,st_atime
,st_mtime
和st_ctime
通常并不总是准确的。其他字段至少取决于Python版本,可能还取决于Windows版本,还可能取决于其他因素。
答案 4 :(得分:0)
Python 3:
>>> os.stat( r'C:\Users\poke\Desktop\test.txt' )
nt.stat_result(st_mode=33206, st_ino=0, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=252, st_atime=1299861949, st_mtime=1298245084, st_ctime=1299861949)
你还需要什么?
答案 5 :(得分:-2)
我在python 3.4中运行os.stat
。
以下是我使用的代码
import os
myPath = os.path.expanduser("~")
os.chdir(myPath)
files = os.listdir()
for file in files:
info = os.stat(file)
print ("{0:>20} {1:>8}".format(file, info.st_size))