我正在尝试设置我的工作目录,以便它在所有机器上都是通用的,但没有for循环。基于此线程,我正在使用以下代码:Finding particular path in directory in Python
import os
try:
start = '/Users'
for dirpath, dirnames, filenames in os.walk(start):
for filename in filenames:
if filename == "US_Accidents_Dec19.csv":
filename = os.path.join(dirpath, filename)
os.chdir(dirpath)
except:
pass
try:
start1 = "C:\\Users"
for dirpath, dirnames, filenames in os.walk(start1):
for filename in filenames:
if filename == "US_Accidents_Dec19.csv":
filename = os.path.join(dirpath, filename)
os.chdir(dirpath)
except:
pass
如果不使用for循环,我将如何执行此操作?使脚本速度变慢
我的建议是创建一个
project_path
变量,它将是机器到项目的本地路径。可以通过创建一个包含所以你的项目看起来像
然后,您可以按如下方式轻松使用它:
无论机器的体系结构、操作系统等如何,这都将起作用
尝试使用pathlib库。它应该为您处理格式问题。 假设包含该文件的文件夹位于您自己的主目录中的某个位置,则此代码应执行以下操作:
pathlib库可以独立于操作系统使用路径
Path.home()
查找您的用户目录,例如'\Users\MyAccount'或'C:\Users\MyAccount'glob()
函数可以根据模式为您查找文件**/
表示搜索所有子文件夹如果不仅要搜索用户目录,还要搜索所有用户目录,只需执行
Path.home().parent.glob('**/US_Accidents_Dec19.csv')
如果要查找的文件位于与脚本相关的同一文件夹或子文件夹中,请尝试使用
Path(__file__).resolve()
获取文件的完整路径,然后在此文件夹上使用globglob()
函数返回一个生成器对象。生成器对象可以通过list(obj)
转换为列表,也可以像列表一样通过for循环对其进行迭代相关问题 更多 >
编程相关推荐