提问人:RanjanN 提问时间:10/13/2023 更新时间:11/16/2023 访问量:118
将文件路径保存在变量中,稍后在函数中使用它
Save the File path in a variable and later use it in a function
问:
我正在尝试使用一个函数,该函数将记录文件路径作为输入并将其转换为 Pandas 数据帧
代码如下:
import pandas as pd
import numpy as np
from asammdf import MDF, Signal
def FileConverter(FilePath):
DF01 = MDF(FilePath)
DF01 = DF01.to_dataframe()
return DF01
当我通过提供文件路径来使用上述代码时:
DF01 = FileConverter('C:\Users\hsr4ban\Desktop\Temp\DAT_to_DataFrame\Testing.dat')
print(DF01)
我收到以下错误:
Input In [79]
DF01 = FileConverter('C:\Users\hsr4ban\Desktop\Temp\DAT_to_DataFrame\Testing.dat')
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
但是,如果通过在路径的开头添加 r'' 或 '\' 来使用相同的代码,如下所示:
DF01 = FileConverter(r'C:\Users\hsr4ban\Desktop\Temp\DAT_to_DataFrame\Testing.dat')
DF01
或
DF01 = FileConverter('C:\\Users\hsr4ban\Desktop\Temp\DAT_to_DataFrame\Testing.dat')
DF01
问题解决了。
但是当我们从计算机复制文件链接时,链接如下所示: “C:\Users\hsr4ban\Desktop\Temp\DAT_to_DataFrame\Testing.dat”
想知道是否有办法仅粘贴从计算机复制的链接而不出现错误? 我尝试在网上搜索一些解决方案,但仍然找不到正确的解决方案。
任何建议都会很有帮助。
答:
只需将前缀添加到字符串中,即可将其转换为模式r
raw
如:
使用原始字符串模式
mypath = r'C:\\Users\hsr4ban\Desktop\Temp\DAT_to_DataFrame\Testing.dat'
或
使用转义格式
mypath = 'C:\\\\Users\\hsr4ban\\Desktop\\Temp\\DAT_to_DataFrame\\Testing.dat'
或
使用 Linux 路径格式
mypath = 'C:/Users/hsr4ban/Desktop/Temp/DAT_to_DataFrame/Testing.dat'
评论
FilePath = "r"+FilePath
FilePath
我建议使用模块os。还将有助于使代码在不同的操作系统(Linux / Windows / MacOS)之间兼容。
import os
FilePath = os.path.join("C:", "Users", "hsr4ban", "Desktop", "Temp", "DAT_to_DataFrame", "Testing.dat")
然后将变量 FilePath 馈送到您的函数 FileConverter,这应该可以解决问题。
此外,您可以使用相同的 os 模块读取文件的完整路径。
path = "path/to/some/folder"
list_files = os.listdir()
在这种情况下,您应该执行如下操作:
path = os.path.join("C:", "Users", "hsr4ban", "Desktop", "Temp", "DAT_to_DataFrame")
list_files = os.listdir()
print(list_files)
这将生成一个列表,然后从中选择正确的列表。例如,如果您的文件位于第一个位置,并且需要文件的完整路径:
myfile = os.path.join(path,list_files[0])
评论
FilePath.split("\")
括号中放置的内容是要用于拆分的字符。
FilePath = os.path.join(os.path.split(FilePath) )
Filepath.split("\")
os.path.split(FilePath)
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
path = "path/to/some/folder" list_files = os.listdir()
你的任务不是把你的思维方式束缚在Python上。你的任务是改变你的思维方式,以获得更好的 Python 编码。所以,首先,请告诉我,您将如何(或从何处)获取文件路径字符串?
>>> x = input('give me the path: ')
give me the path: C:\t\file_name.md5
>>> print(x)
'C:\\t\\file_name.md5'
变体 2 - 您将对其进行硬编码。所以写出“C:\t\file_name.md5”R
变体 3 - 从文件中读取。您将阅读如下行列表:
['C:\\t\\file_name.md5\n']
所以 - 停止硬编码 Windows 路径文字而不转发,你会很高兴。R
评论
input()
评论
C:\\\\Users\\hsr4ban\\Desktop\\Temp\\DAT_to_DataFrame\\Testing.dat
C:/Users/hsr4ban/Desktop/Temp/DAT_to_DataFrame/Testing.dat
SyntaxError