Python os.path 和 dataframe.to_csv 找不到路径字符串
Python path string not found by os.path and dataframe.to_csv
我尝试对一些文件进行排序,因此我首先读取目录中的所有 csv 文件,对它们进行排序,然后再次将它们保存在不同的目录路径中。但是,创建路径字符串似乎存在问题,因为库无法再处理它们。
以下代码导致错误:“FileNotFoundError:[WinError 3] Das System kann den angegebenen Pfad nicht finden:'C:/Users/user/Documents/Daten/NoEncaps/4-point-empty-pcb/sorted/T10/emptyPCB-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-point-empty-pcb"
path_file = r"C:\Users\user\Documents\Daten\NoEncaps-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 = ';')
我尝试对一些文件进行排序,因此我首先读取目录中的所有 csv 文件,对它们进行排序,然后再次将它们保存在不同的目录路径中。但是,创建路径字符串似乎存在问题,因为库无法再处理它们。
以下代码导致错误:“FileNotFoundError:[WinError 3] Das System kann den angegebenen Pfad nicht finden:'C:/Users/user/Documents/Daten/NoEncaps/4-point-empty-pcb/sorted/T10/emptyPCB-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-point-empty-pcb"
path_file = r"C:\Users\user\Documents\Daten\NoEncaps-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 = ';')