我的项目有一堆 csv 文件,这些文件可能会或可能不会根据用户输入被调用。我想将这些文件存储在一个子目录中,以保持我的项目文件夹整洁。我对如何做到这一点感到非常困惑。我挖掘的大部分资源都涉及从子目录而不是基本数据文件导入模块或包。
导入我的 csv 的代码行目前看起来像:
target_doc = csv.reader(open('sample.csv', 'rU'), delimiter=",", quotechar='|')
我假设解决方案将涉及设置路径变量,使用 import os 和 import sys,并且可能将此行拆分为多个部分?
请您参考如下方法:
您可以按文件路径打开文件。只需使用 open('/path/to/file')。
只有模块和包需要导入 - Python 源代码。
这里唯一真正的注释是使用 os.path.join()加入路径以实现跨不同操作系统和文件系统的良好兼容性。其余os.path只要涉及文件,模块也值得一看。 Windows 路径的另一个常见陷阱是使用反斜杠转义字符,因此您必须转义反斜杠 ("some\\file") - 一个丑陋的选项,使用原始字符串 (r"some\file"),使用正斜杠(Python 实际上会自动处理),或者 - 最好的选择是将您的路径作为参数传递给上述 os.path.join()。
可能还值得注意的是,使用 the with statement会改进您的代码。
例如:
with open(os.path.join("path", "to", "file.csv"), 'rU') as file:
target_doc = csv.reader(file, delimiter=",", quotechar='|')
...
使用 with 确保您的文件被关闭 - 即使发生异常也是如此。
