【问题标题】:Creating a list of lists of a file analysis tool创建文件分析工具的列表
【发布时间】:2021-01-18 19:31:49
【问题描述】:

我有很多文件需要处理以进行数据分析,但首先我需要将它们分组。 文件名如下: Name_'Frequency'Hz_'Number'.csv 我需要列出每个“频率”分开的列表,并按顺序排列它们的“数字”。 我正在使用 glob 函数来分隔大部分“数字”。

我正在使用它来导入多个文件作为 pandas 数据框以供进一步分析。

根据我的尝试,我主要得到了:

can only concatenate str (not "int") to str

我已经编写了 2 周的代码,但我不知道如何解决这个问题。 谢谢你们。 问题:

对于我的代码:

root = tk.Tk()
root.withdraw()
file_path = filedialog.askdirectory()
    
    
general_filename = 'Name_'
    
frequency_list = 10, 15, 25, 30, 100, 500
    
obj = {}
    
for frequency in frequency_list:
        obj[files,frequency] = glob.glob(file_path + '/' + general_filename + frequency + 'Hz_*.csv')
    
    print(obj)

【问题讨论】:

  • 将整数值转换为字符串.. str(frequency)

标签: python python-3.x list glob


【解决方案1】:
root = tk.Tk()
root.withdraw()
file_path = filedialog.askdirectory()


general_filename = 'Name_'

frequency_list = [10, 15, 25, 30, 100, 500]

obj = {}

for frequency in frequency_list:
    obj[files+str(frequency)] = glob.glob(file_path + '/' + general_filename + str(frequency) + 'Hz_*.csv')

print(obj)

只需使用str() 方法将整数转换为字符串并与其他字符串连接。

【讨论】:

  • 我明白你为什么需要使用 str( 函数但现在 python 给出了另一个错误消息。TypeError: unhashable type: 'list'
  • 谢谢,但它与其他答案 obj[f"files_{frequency}"] 一起使用
【解决方案2】:

是的,因为frequency 是 int,所以不能与 str 连接。

但是,你可以;

for frequency in frequency_list:
    obj[f"files_{frequency}"] = glob.glob(file_path + '/' + general_filename + str(frequency) + 'Hz_*.csv')

或者,我更喜欢:

for frequency in frequency_list:
    obj[f"files_{frequency}"] = glob.glob(f'{file_path}/{general_filename}{frequency}Hz_*.csv')

【讨论】:

  • 我明白你为什么需要使用 str( 函数但现在 python 给出了另一个错误消息。TypeError: unhashable type: 'list'
  • 可能是。您应该将 frequency_list 定义为 frequency_list = [10, 15, 25, 30, 100, 500] (使用括号:))
猜你喜欢
  • 2010-09-06
  • 2012-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
相关资源
最近更新 更多