os.walk() 返回列表中的一些数据。 os.path.getsize() 需要不同的数据类型才能工作
os.walk() returning some data in lists. os.path.getsize() needs a different data type to work
我查看了 os 文档并尝试四处搜索,但找不到如何执行此操作。
我正在尝试让 os.walk() 隐藏到我已经 chosen 的路径的所有文件夹、子文件夹和文件中,并打印超过一定大小的所有内容:
for folders, subfolders, files in os.walk("/Users/my_user_name/Downloads"):
if os.path.getsize(folders) > 2000:
print(os.path.getsize(folders))
print(os.path.abspath(folders))
elif os.path.getsize(subfolders) > 0:
print(os.path.getsize(subfolders))
print(os.path.abspath(subfolders))
第一个 if 语句将 purposelly 失败,因为我想查看子文件夹,但是当 运行
print(subfolders)
它returns我想要的信息,但数据都在列表中:
['Hearthstone-Setup.app', 'PokerStarsUK']
['Contents']
['_CodeSignature', 'MacOS', 'Resources']
[]
[]
[]
[]
当尝试获取大小或绝对路径时,如果以这种格式返回数据,这不是 possible。文件是完全相同的方式;只有文件夹可以执行我想要它执行的操作。我知道我以前遇到过这个问题,但我不记得我是如何解决的。
谁能帮我把数据转换成不同的格式?对不起,如果这是一个愚蠢的问题,我还处于初学者阶段,正在努力学习。
对每个组合使用 os.path.join
for folder, subfolders, files in os.walk("/Users/my_user_name/Downloads"):
# Check all subfolders directly in folder
for subfolder in subfolders:
print(os.path.join(folder, subfolder))
# Check all files directly in folder
for file in files:
print(os.path.join(folder, file))
或使用glob
import glob
for file in glob.glob("/Users/my_user_name/Downloads/**/*", recursive=True):
print(file)
我查看了 os 文档并尝试四处搜索,但找不到如何执行此操作。
我正在尝试让 os.walk() 隐藏到我已经 chosen 的路径的所有文件夹、子文件夹和文件中,并打印超过一定大小的所有内容:
for folders, subfolders, files in os.walk("/Users/my_user_name/Downloads"):
if os.path.getsize(folders) > 2000:
print(os.path.getsize(folders))
print(os.path.abspath(folders))
elif os.path.getsize(subfolders) > 0:
print(os.path.getsize(subfolders))
print(os.path.abspath(subfolders))
第一个 if 语句将 purposelly 失败,因为我想查看子文件夹,但是当 运行
print(subfolders)
它returns我想要的信息,但数据都在列表中:
['Hearthstone-Setup.app', 'PokerStarsUK']
['Contents']
['_CodeSignature', 'MacOS', 'Resources']
[]
[]
[]
[]
当尝试获取大小或绝对路径时,如果以这种格式返回数据,这不是 possible。文件是完全相同的方式;只有文件夹可以执行我想要它执行的操作。我知道我以前遇到过这个问题,但我不记得我是如何解决的。
谁能帮我把数据转换成不同的格式?对不起,如果这是一个愚蠢的问题,我还处于初学者阶段,正在努力学习。
对每个组合使用 os.path.join
for folder, subfolders, files in os.walk("/Users/my_user_name/Downloads"):
# Check all subfolders directly in folder
for subfolder in subfolders:
print(os.path.join(folder, subfolder))
# Check all files directly in folder
for file in files:
print(os.path.join(folder, file))
或使用glob
import glob
for file in glob.glob("/Users/my_user_name/Downloads/**/*", recursive=True):
print(file)