无法在Python中写入具有完整路径的文件

无法在Python中写入具有完整路径的文件,python,file,csv,pandas,Python,File,Csv,Pandas,我在Mac上使用Pandas来读写CSV文件,奇怪的是当使用完整路径时,它有错误,当只使用一个文件名时,它工作正常。我在下面的评论中发布了有效和无效的代码,以及详细的错误消息。有人有什么好主意吗 sourceDf = pd.read_csv(path_to_csv) sourceDf['nameFull'] = sourceDf['nameFirst'] + ' ' + sourceDf['nameLast'] sourceDf.to_csv('newMaster.csv') # working

我在Mac上使用Pandas来读写CSV文件,奇怪的是当使用完整路径时,它有错误,当只使用一个文件名时,它工作正常。我在下面的评论中发布了有效和无效的代码,以及详细的错误消息。有人有什么好主意吗

sourceDf = pd.read_csv(path_to_csv)
sourceDf['nameFull'] = sourceDf['nameFirst'] + ' ' + sourceDf['nameLast']
sourceDf.to_csv('newMaster.csv') # working
sourceDf.to_csv('~/Downloads/newMaster.csv') # not working

Traceback (most recent call last):
  File "/Users/foo/PycharmProjects/DataWranglingTest/CSVTest1.py", line 36, in <module>
    add_full_name(path_to_csv, path_to_new_csv)
  File "/Users/foo/PycharmProjects/DataWranglingTest/CSVTest1.py", line 28, in add_full_name
    sourceDf.to_csv('~/Downloads/newMaster.csv')
  File "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/frame.py", line 1189, in to_csv
    formatter.save()
  File "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/format.py", line 1442, in save
    encoding=self.encoding)
  File "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/common.py", line 2831, in _get_handle
    f = open(path, mode)
IOError: [Errno 2] No such file or directory: '~/Downloads/newMaster.csv'

Tried to use prefix r, but not working,

    path_to_csv = r'~/Downloads/Master.csv'
    path_to_new_csv = r'~/Downloads/Master_new.csv'

  File "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/frame.py", line 1189, in to_csv
    formatter.save()
  File "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/format.py", line 1442, in save
    encoding=self.encoding)
  File "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/common.py", line 2831, in _get_handle
    f = open(path, mode)
IOError: [Errno 2] No such file or directory: '~/Downloads/Master_new.csv'
sourceDf=pd.read\u csv(路径到路径)
sourceDf['nameFull']=sourceDf['nameFirst']+''+sourceDf['nameLast']
sourceDf.to_csv('newMaster.csv')#正在工作
sourceDf.to_csv(“~/Downloads/newMaster.csv”)#不工作
回溯(最近一次呼叫最后一次):
文件“/Users/foo/PycharmProjects/DataWranglingTest/CSVTest1.py”,第36行,在
添加\u全名(路径\u到\u csv,路径\u到\u新\u csv)
文件“/Users/foo/PycharmProjects/DataWranglingTest/CSVTest1.py”,第28行,添加全名
sourceDf.to_csv(“~/Downloads/newMaster.csv”)
文件“/usr/local/cillar/python/2.7.8/Frameworks/python.framework/Versions/2.7/lib/python2.7/site packages/pandas/core/frame.py”,第1189行,输入到csv
格式化程序。保存()
文件“/usr/local/ceral/python/2.7.8/Frameworks/python.framework/Versions/2.7/lib/python2.7/site packages/pandas/core/format.py”,第1442行,保存
编码=自我编码)
文件“/usr/local/cillar/python/2.7.8/Frameworks/python.framework/Versions/2.7/lib/python2.7/site packages/pandas/core/common.py”,第2831行,位于“获取”句柄中
f=打开(路径、模式)
IOError:[Errno 2]没有这样的文件或目录:“~/Downloads/newMaster.csv”
尝试使用前缀r,但不起作用,
路径\u到\u csv=r'~/Downloads/Master.csv'
路径\u到\u new\u csv=r'~/Downloads/Master\u new.csv'
文件“/usr/local/cillar/python/2.7.8/Frameworks/python.framework/Versions/2.7/lib/python2.7/site packages/pandas/core/frame.py”,第1189行,输入到csv
格式化程序。保存()
文件“/usr/local/ceral/python/2.7.8/Frameworks/python.framework/Versions/2.7/lib/python2.7/site packages/pandas/core/format.py”,第1442行,保存
编码=自我编码)
文件“/usr/local/cillar/python/2.7.8/Frameworks/python.framework/Versions/2.7/lib/python2.7/site packages/pandas/core/common.py”,第2831行,位于“获取”句柄中
f=打开(路径、模式)
IOError:[Errno 2]没有这样的文件或目录:“~/Downloads/Master\u new.csv”
提前感谢,,
Lin

尝试使用
os.path.join()


使用相同的方法将pandas.read_csv()指向正确的方向。

您没有指定python版本。 在3.4上,您可以使用pathlib,否则可以使用
os.path.join()
或引用:

sourceDf.to_csv(r'~/Downloads/newMaster.csv')
注意r。
问题是/n是换行符,这在路径中是不允许的。

try,path\u to\u csv=os.path.join(“Downloads”,“Master.csv”)path\u to\u new\u csv=os.path.join(“Downloads”,“Master\u new.csv”),遇到错误消息self.\u engine=CParserWrapper(self.f,**self.options)文件“pandas/parser.pyx”,第350行,pandas.parser.TextReader.\uuu cinit.\uuuu(pandas/parser.c:3173)文件pandas/parser.pyx,第594行,pandas.parser.TextReader.\u setup\u parser\u source(pandas/parser.c:5912)IOError:文件下载/Master.csv不存在我不熟悉OSX路径约定。尝试os.path.join(“~”、“下载”等)?不起作用:(完整路径名似乎有效(意思是没有缩写,如“~”)。尝试过,但不起作用,我已经在我的原始帖子中发布了我的错误消息,如果您能帮助查看,我将不胜感激。谢谢。give
os.path.join
a go,如果这也不起作用,请确保该文件确实存在,并且可以通过python访问该文件(读取访问权限)它将是
os.path.join(“~”,“Downloads”,“newMaster.csv”)
这很奇怪,我可以使用“~/Downloads/Master.csv”读取,但不能使用“~/Downloads/Master\u new.csv”写入,您认为这是权限问题吗?或者您实际上没有在写入模式下打开输出文件。
sourceDf.to_csv(r'~/Downloads/newMaster.csv')