不能用Python中的完整路径写文件 [英] cannot write file with full path in Python

查看:128
本文介绍了不能用Python中的完整路径写文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在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')#不工作

回溯(最近一次调用):
在< module>中的文件/Users/foo/PycharmProjects/DataWranglingTest/CSVTest1.py,第36行。
add_full_name(path_to_csv,path_to_new_csv)
文件/Users/foo/PycharmProjects/DataWranglingTest/CSVTest1.py,第28行,add_full_name
sourceDf.to_csv('〜/ Downloads / newMaster。 csv')
文件/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/frame.py ,第1189行,在to_csv
formatter.save()
文件/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ site-packages / pandas / core / format.py,行1442,保存
encoding = self.encoding)
文件/usr/local/Cellar/python/2.7.8/Frameworks/Python .framework / Versions / 2.7 / lib / python2.7 / site-packages / pandas / core / common.py,第2831行,在_get_handle
f = open(path,mode)
IOError:[Errno 2]没有这样的文件或目录:'〜/ Downloads / newMaster.csv'

尝试使用前缀r,但不工作,

path_to_csv = r'〜/下载/Master.csv'
path_to_new_csv = r'〜/ Downloads / Master_new.csv'

文件/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/版本/ 2.7 / lib / python2.7 / site-packages / pandas / core / frame.py,行1189,in_csv
formatter.save()
文件/ usr / local / Cellar / python / 2.7.8 / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / site-packages / pandas / core / format.py,第1442行,保存
encoding = self.encoding)
文件/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/common.py,第2831行,在_get_handle
f = open(path,mode)
IOError:[Errno 2]没有这样的文件或目录:'〜/ Downloads / Master_new.csv'



提前感谢,
Lin

解决方案

p>尝试使用 os.path.join()

  import os 
(...)
output_filename ='newMaster.csv'
output_path = os.path.join('Downloads',output_filename)
$ b sourceDf.to_csv(output_path)

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


I am using Pandas on Mac, to read and write a CSV file, and the weird thing is when using full path, it has error and when using just a file name, it works. I post my code which works and which not works in my comments below, and also detailed error messages. Anyone have any good ideas?

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'

thanks in advance, Lin

解决方案

Try using os.path.join().

import os
(...)
output_filename = 'newMaster.csv'
output_path = os.path.join('Downloads', output_filename)
(...)
sourceDf.to_csv(output_path)

Use the same methodology to point pandas.read_csv() in the right direction.

这篇关于不能用Python中的完整路径写文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆