【发布时间】:2018-06-11 07:31:27
【问题描述】:
我编写了一个 python 脚本,它接收一个文件并匹配另一个文件中的某些列。我想将此写入名为“[原始文件名]_matched”的csv。例如。我有一堆文件(xaa,xab,...),在每个文件上运行脚本后,我也会有(xaa_matched,xab_matched 等...)这是我根据这个解决方案尝试过的:@ 987654321@
import sys
import os
filename = sys.argv[1]
# some code
path = r'/Users/mdong/dataScience/movie_representation/fuzzy_match_dir/'
input_file.to_csv(os.path.join(path,'match_' + filename), index = False)
但是,我得到了这个错误
Traceback (most recent call last):
File "movie_matching.py", line 29, in <module>
input_file.to_csv(os.path.join(path,filename), index = False)
File "/Users/mdong/anaconda/lib/python3.6/site-packages/pandas/core/frame.py", line 1413, in to_csv
formatter.save()
File "/Users/mdong/anaconda/lib/python3.6/site-packages/pandas/io/formats/format.py", line 1568, in save
compression=self.compression)
File "/Users/mdong/anaconda/lib/python3.6/site-packages/pandas/io/common.py", line 382, in _get_handle
f = open(path_or_buf, mode, errors='replace')
FileNotFoundError: [Errno 2] No such file or directory: '/Users/mdong/dataScience/movie_representation/fuzzy_match_dir/fuzzy_match_dir/xaa.csv'
我不确定为了排除故障出了什么问题,任何指针将不胜感激!
【问题讨论】:
-
显而易见的事情是检查你的路径。你做到了吗?
-
你的意思是检查目录是否存在?它没有,因为fuzzy_match_dir 在路径中被复制了两次,但我认为我没有正确使用os.path.join,或者这甚至是创建可变路径的最佳方法。
-
sys.argv[1]进来的值是多少? -
我从命令行传入一个 csv 文件,所以如果我调用 python3 movie_matching_cahl.py xaa,sys.argv[1] 将是 xaa。我正在尝试使用它,以便可以将输出写入目录中每个文件的 xaa_matched 之类的文件。
标签: pandas operating-system export-to-csv sys