gpt4 book ai didi

python - 将 os.path.join 与 os.path.getsize 一起使用,返回 FileNotFoundError

转载 作者:太空宇宙 更新时间:2023-11-03 17:44:00 25 4
gpt4 key购买 nike

结合我的last question ,我将在某种列表中打印文件名及其旁边的大小。基本上,我正在从一个文件(由用户添加)中读取文件名,获取文件名并将其放入工作目录的路径中以一一打印其大小,但是我遇到了以下问题 block :

print("\n--- Stats ---\n")

with open('userdata/addedfiles', 'r') as read_files:
file_lines = read_files.readlines()

# get path for each file and find in trackedfiles
# use path to get size

print(len(file_lines), "files\n")

for file_name in file_lines:
# the actual files should be in the same working directory
cwd = os.getcwd()

fpath = os.path.join(cwd, file_name)
fsize = os.path.getsize(fpath)

print(file_name.strip(), "-- size:", fsize)

返回此错误:

tolbiac wpm-public → ./main.py --filestatus

--- Stats ---

1 files

Traceback (most recent call last):
File "./main.py", line 332, in <module>
main()
File "./main.py", line 323, in main
parseargs()
File "./main.py", line 317, in parseargs
tracking()
File "./main.py", line 204, in tracking
fsize = os.path.getsize(fpath)
File "/usr/lib/python3.4/genericpath.py", line 50, in getsize
return os.stat(filename).st_size
FileNotFoundError: [Errno 2] No such file or directory: '/home/tolbiac/code/wpm-public/file.txt\n'
tolbiac wpm-public →

所以看起来好像有东西在 file_name 的末尾添加了一个\n ,我不确定这是否是 getsize 模块中使用的东西,我用 os.stat 尝试了这个,但它做了同样的事情。

有什么建议吗?谢谢。

最佳答案

当您读取文件时,您需要了解数据是如何分隔的。在这种情况下,读入文件每行都有一个由 \n 运算符分隔的文件名。使用前需要将其剥离。

for file_name in file_lines:
file_name = file_name.strip()
# rest of for loop

关于python - 将 os.path.join 与 os.path.getsize 一起使用,返回 FileNotFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30085360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com