繁体   English   中英

os.path和dataframe.to_csv找不到Python路径字符串

[英]Python path string not found by os.path and dataframe.to_csv

我尝试对某些文件进行排序,因此我首先读取目录中的所有csv文件,对它们进行排序,然后再次将它们保存在其他目录路径中。 但是,创建路径字符串似乎存在问题,因为库无法再处理它们。

下面的代码导致错误:'FileNotFoundError:[WinError 3]在系统目录中查找:'C:/ Users / user / Documents / Daten / NoEncaps / 4-point-empty-pcb / sorted / T10 /空PCB-T30RH30''。 您可能会问自己为什么代码如此奇怪:我已经尝试对其进行修复。 例如,在使用反斜杠(\\)而不是斜杠之前-如果我将输出路径打印到控制台,一切都很好(C:\\ Users \\ user ...),但是当我尝试使用os.mkdir(。 。)或dataframe.to_csv(...)它给出了相同的错误消息,只是所有反斜杠都被双反斜杠替换了。 用mkdir删除部件也无济于事。

预先感谢所有建设性的反馈!

import os
import pandas as pd
import pathlib as p

path = r"C:\Users\user\Documents\Daten\NoEncaps\4-point-empty-pcb"
path_file = r"C:\Users\user\Documents\Daten\NoEncaps\4-point-empty-pcb\emptyPCB-T30RH30\Transfer_emptyPCB_C2 PLSTA T101__T_RT_2018-07-09 11_28_30_(1.1).csv"

(head,tail) = os.path.split(path_file)


#data = pd.read_csv(path_file, sep = ';')
d = {'FETname':['C2 PLSTA T10']}
data = pd.DataFrame(data=d)


head = head.replace(path,'')
head = head.replace('\\','')
fetname = data[['FETname']].loc[0].to_string()
groupname = ''
if 'C2 PLSTA T10' in fetname:
    groupname = 'T10'

outputpath = os.path.join(path,"sorted",groupname,head)
fullout = os.path.join(outputpath,tail)
outputpath = p.posixpath.join(*outputpath.split('\\'))
fullout = p.posixpath.join(*fullout.split('\\'))
print(fullout)
if not os.path.exists(outputpath):
    os.mkdir(outputpath)

data.to_csv(fullout, sep = ';')

您将需要使用os.makedirs()创建目录树。 os.mkdir()只能在一个目录深处创建它们。

也许是这样的吗? 我已经将反斜杠更改为正斜杠,因为Python对于那些跨平台相当宽容。

import os.path

root_path = r"C:/Users/user/Documents/Daten/NoEncaps/4-point-empty-pcb"
# NB: this is relative to `root_path`.
path_file = r"emptyPCB-T30RH30/Transfer_emptyPCB_C2 PLSTA T101__T_RT_2018-07-09 11_28_30_(1.1).csv"

head, tail = os.path.split(path_file)

data = pd.read_csv(os.path.join(root_path, path_file))
fetname = data[['FETname']].loc[0].to_string()

# Generate the path out of components...
components = ['sorted']

if 'C2 PLSTA T10' in fetname:
    components.append(groupname)

components.append(head)
output_dir = os.path.join(*[root_path] + components)

if not os.path.isdir(output_dir):
    print("Creating", output_dir)
    os.makedirs(output_dir)

output_file = os.path.join(output_dir, tail)

print("Writing to", output_file)

data.to_csv(fullout, sep = ';')

如我所见,路径字符串中的问题。
将“ \\”替换为“ \\\\”
这可能会有所帮助,因为字符“ \\”用于格式字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM