python - 同步电脑上的 Python 文件夹路径
问题描述
我在两台不同的电脑上使用 .py 文件,并使用谷歌驱动器同步文件。由于我经常使用子文件夹处理文件,因此我使用完整路径来读取 csv
passport = pd.read_csv(r'C:\Users\turbo\Google Drive\Studium\Master_thesis\Python\Databases\passport_uzb.csv')
但是,在切换电脑时,我必须手动更改路径,因为对于我的第二台电脑,它是:
C:\Users\turbo\My Drive\Studium\Master_thesis\Python\Databases
所以唯一的区别真的是“谷歌驱动器”=/=“我的驱动器”
是否可以使用完整的文件路径来读取文件?
解决方案
您可以使用相对路径而不是绝对路径来访问 CSV 。该pathlib
模块对此很有用。例如,假设您的脚本直接位于...Python/Databases
文件夹内,您可以使用__file__
模块属性计算 CSV 的路径,如下所示:
from pathlib import Path
# this is a path object that always refers to the script in which it is defined
this_file = Path(__file__).resolve()
# this path refers to .../Python/Databases, no matter where it is located
this_folder = this_file.parent
csv_path = this_folder / "passport_uzb.csv"
passport = pd.read_csv(csv_path)
编辑:无论您的脚本位于何处,您都可以使用.parent
和的某种组合/ "child"
来构建一个可以工作的相对路径。如果您的脚本在,...Python/Databases/nasapower
那么只需添加另一个.parent
:
this_file = Path(__file__).resolve()
nasapower_folder = this_file.parent
databases_folder = nasapower_folder.parent
或者您可以使用该.parents
序列更快地到达那里:
databases_folder = Path(__file__).resolve().parents[1]
同样,对于输出文件夹:
output_folder = Path(__file__).resolve().parent / "json"
推荐阅读
- amazon-ec2 - 如何通过 SSH 隧道通过 AWS 堡垒/跳转服务器从笔记本电脑访问 phpMyAdmin 到使用 .ssh/config 的 EC2 实例
- pascal - 在帕斯卡中交换两个数字
- android - 如何创建一个可以点击其他应用程序的自动点击器应用程序?
- julia - 在 Julia 中创建长度为 n 的向量
- react-native - 如何解决 Module parse failed: Unexpected token (11:9) react-router-native
- angular - Angular gapi 将简单文本上传到 Google Drive
- android - 如何根据android中的屏幕尺寸更改edittext宽度?
- java - Concurrent HashMap 中 Rehashing 期间的检索
- vue.js - VueJS通过代码加载模板组件?
- mongodb - MongoDB - 查找数组长度小于或等于 5 的文档