python-3.x 将文件路径保存到变量中,然后在函数中使用它

wkyowqbh  于 2023-10-21  发布在  Python
关注(0)|答案(3)|浏览(141)

我试图有一个函数,在录音文件的路径作为输入,并将其转换为一个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'
想知道是否有一种方法可以只粘贴从计算机复制的链接而不会出错?我试着在网上寻找一些解决方案,但仍然找不到正确的解决方案。
任何建议都将非常有帮助。

wmtdaxz3

wmtdaxz31#

我建议使用模块操作系统。还将有助于使代码在不同的操作系统(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])
eqfvzcg8

eqfvzcg82#

只需将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'
a1o7rhls

a1o7rhls3#

你的任务不是为了你的思维方式而攻击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 -您将硬编码它。因此,写入R转发“C:\t\file_name.md5”
变体3 -从文件读取。你会读到这样的行列表:

['C:\\t\\file_name.md5\n']

所以-停止硬编码windows路径文字没有向前R,你会很高兴。

相关问题