我一直在写一个脚本,用来过滤掉windows共享服务器中CSV文件中的数据。问题出在它声明它无法找到该文件,尽管它存在。
我在Linux (Ubuntu)上运行此程序,并使用samba将驱动器映射到系统中。samba中的完整文件路径为:
smb://serverip/csv%20files/rlog.csv
在Windows server中,csv和rlog之间有一个空格
最初,它看不到位置,因为\r是一个特殊字符,我发现在字符串之前添加r会使其成为文字。
到目前为止,我所拥有的脚本是:
import numpy as np
import pandas as pd
PATH = r"\\serverip\csv%20files\rlog.csv"
data_file = pd.read_csv(PATH, sep="|")
print(data_file)我用r"\\serverip\csv files\rlog.csv"、r"\\serverip\csv%20files\rlog.csv"和smb://serverip/csv%20files/rlog.csv尝试了PATH变量,但它们都输出了相同的错误。
它会输出错误IOError: File "\\serverip\csv%20files\rlog.csv" does not exist,尽管它在目录中并且存在。
有什么特别的方法可以做到这点吗?因为我不知所措。
发布于 2018-12-14 23:50:06
Pandas在使用Samba时遇到了问题。将协议更改为CIFS后,问题已解决。我必须为本地文件夹创建一个目录,以便可以从文件共享映射文件共享;这是它工作的唯一方法。
sudo mkdir /mnt/cifs
sudo mount -t cifs "//serverip/csv files" /mnt/cifs -o username=un,password=pw,domain=COMPUTER
https://stackoverflow.com/questions/53729478
复制相似问题