Windows python 中无扩展文件的 FileNotFoundError
FileNotFoundError with no-extension file in python on Windows
我在路径中有一个无扩展名的文件:C:/Users/example/Downloads。
文件名为 examplefile,因此路径为 C:/Users/example/Downloads/examplefile。
我尝试使用
os.stat("C:/Users/example/Downloads/examplefile").st_size
但是我得到了这个错误:
File "<pyshell#26>", line 1, in <module>
os.stat(file).st_size
FileNotFoundError: [WinError 2] The specified file could not be found: 'C:/Users/example/Downloads/examplefile'
所以我尝试使用 os.path.getsize()
但我仍然遇到同样的错误。
我如何获得文件大小?
在引用 python 中的路径时,您应该使用 \\ 而不是 /。
os.stat(C:\Users\example\Downloads\examplefile).st_size
应该能胜任。
抱歉,忘记了 python 会自动解释并且不会回答问题。当我尝试按照您的方式执行时,它不会出错:
import os
file = "C:/Users/user/Downloads/data"
print(os.stat(file).st_size)
在这种情况下,文件 具有 扩展名 - 只是 windows 在默认配置中不显示它。
您可以在尝试访问 Python 时使用 glob 模式获取真实文件名。
为方便起见,您可能希望使用 pathlib
而不是 os
,因为它将 glob 功能和统计信息结合在一个地方:
from pathlib import Path
path_to_guess = Path("C:/Users/example/Downloads/examplefile")
path = path_to_guess.parent.glob(path_to_guess.stem + ".*")[0]
print(path)
# here you have the extension. Of course, you might have more than one
# file with the same base name- this is good for a
# one time script or interactive use -
# for production you should check also creation time, and maybe use
# other means to pick the correct file.
size = path.stat.st_size()
我在路径中有一个无扩展名的文件:C:/Users/example/Downloads。 文件名为 examplefile,因此路径为 C:/Users/example/Downloads/examplefile。 我尝试使用
os.stat("C:/Users/example/Downloads/examplefile").st_size
但是我得到了这个错误:
File "<pyshell#26>", line 1, in <module>
os.stat(file).st_size
FileNotFoundError: [WinError 2] The specified file could not be found: 'C:/Users/example/Downloads/examplefile'
所以我尝试使用 os.path.getsize()
但我仍然遇到同样的错误。
我如何获得文件大小?
在引用 python 中的路径时,您应该使用 \\ 而不是 /。
os.stat(C:\Users\example\Downloads\examplefile).st_size
应该能胜任。
抱歉,忘记了 python 会自动解释并且不会回答问题。当我尝试按照您的方式执行时,它不会出错:
import os
file = "C:/Users/user/Downloads/data"
print(os.stat(file).st_size)
在这种情况下,文件 具有 扩展名 - 只是 windows 在默认配置中不显示它。
您可以在尝试访问 Python 时使用 glob 模式获取真实文件名。
为方便起见,您可能希望使用 pathlib
而不是 os
,因为它将 glob 功能和统计信息结合在一个地方:
from pathlib import Path
path_to_guess = Path("C:/Users/example/Downloads/examplefile")
path = path_to_guess.parent.glob(path_to_guess.stem + ".*")[0]
print(path)
# here you have the extension. Of course, you might have more than one
# file with the same base name- this is good for a
# one time script or interactive use -
# for production you should check also creation time, and maybe use
# other means to pick the correct file.
size = path.stat.st_size()