import os
for parent, dirnames, filenames in os.walk(os.getcwd()):
for filename in filenames:
file_path = os.path.join(parent, filename)
extensions = os.path.splitext(file_path)[1]
print(file_path)
这个代码应该把包括子文件夹中的文件路径全部输入,但为什么只能输出一个py文件?新建窗口有时候能正常显示,有时候不能正常显示。
根据你提供的代码,可以看到这个 Python 脚本使用了递归方式遍历目录中的所有文件,并将每个文件的完整路径输出到控制台。但是在这段代码中,只有最后一个找到的 .py 文件被打印了出来,因为 file_path 这个变量在每次迭代中都被覆盖了,导致前面找到的 .py 文件路径被覆盖了。
为了输出所有找到的 .py 文件路径,需要将它们存储到一个列表中,然后在遍历完成后一次性打印出来。修改后的代码如下:
import os
# 存储所有找到的 .py 文件路径
py_files = []
# 遍历目录中的所有文件
for parent, dirnames, filenames in os.walk(os.getcwd()):
for filename in filenames:
# 获取文件的完整路径
file_path = os.path.join(parent, filename)
# 如果文件是 .py 文件,则添加到列表中
if file_path.endswith('.py'):
py_files.append(file_path)
# 打印所有找到的 .py 文件路径
for file_path in py_files:
print(file_path)
在这个代码中,使用了一个列表 py_files 来存储所有找到的 .py 文件路径。在遍历目录时,如果找到一个 .py 文件,就将其路径添加到 py_files 列表中。在遍历完成后,再遍历 py_files 列表,打印出所有找到的 .py 文件路径。
这样就可以输出目录及其子目录中的所有 .py 文件路径了。
python调试三板斧 https://ask.csdn.net/questions/7908322/54130133
如果按照上面的方法会报错
error sh: /Users//Desktop/.py: Permission denied
正确方式为
import os
os.system('{} {}'.format('python',loc))
# 或者是
os.system('python {}'.format(loc))
这里的loc为字符串,用相对路径即可。
但这样并不能把运行的文件得到的变量输出出来,如果想把结果输出出来并进一步运算,参考文章,所采用的方法是
# 所采用的方法如下
# from 变量所在文件名 import 变量名
import os
# os.system('{} {}'.format('python','A/main.py'))
os.system('python {}'.format('A/main.py'))
from A.main import c # 如果在同一目录下则直接 from main import c 即可
d = c+1
print('d=',d)
针对这个问题,我需要先看一下你的代码。可以尝试使用os.walk()函数来实现递归遍历文件夹中的所有文件和子文件夹,同时使用os.path.splitext()函数提取文件名。代码可以参考如下:
import os
# 遍历文件夹中的所有文件和子文件夹
def traverse_folder(folder_path):
for root, dirs, files in os.walk(folder_path):
for file in files:
# 提取文件名
filename, ext = os.path.splitext(file)
# 输出文件名
print("文件名:", filename, ",扩展名:", ext)
# 测试代码
traverse_folder("your_folder_path")
如果你还有其他问题,可以继续提出来。