【问题标题】:Read name of the file which was taken as sys.argv[1] input读取作为 sys.argv[1] 输入的文件名
【发布时间】:2019-12-18 10:24:08
【问题描述】:

我写了一个代码来处理3个excel文件的数据,并输出一个新文件。将 3 个文件拖放到打开 ipython 的批处理文件上,然后打开 .py 文件以运行代码。拖放到 .bat 文件中的 excel 文件读取为“sys.argv”。

file1 = sys.argv[1]
file2 = sys.argv[2]
file3 = sys.argv[3]

然后我将文件读入 pandas 数据帧。

df1 = read_excel(file1,None)
df2 = read_excel(file2,None)
df3 = read_excel(file3,None)

问题是在将文件拖放到 .bat 文件时,我不知道哪个文件会被读取为 file1/file2/file3。

我可以读取数据框中的列名来决定哪个是哪个。但这可能并非每次都有效。我拖放的三个文件具有不会更改的唯一名称。我想我可以尝试从 sys.argv 读取文件名,然后将它们重定向到正确的数据帧。

【问题讨论】:

    标签: python pandas drag-and-drop


    【解决方案1】:

    假设您的文件具有足够不同的名称,您可以尝试使用 in 进行简单的字符串搜索,例如:

    # a list containing your expected filenames
    fileList = ["f1","f3","f2"]
    
    dataframes = {filename: read_excel(file,None) for filename in fileList for file in sys.argv[1:] if filename in file}
    

    为您提供包含这些文件的文件名和数据框的字典。

    【讨论】:

      猜你喜欢
      • 2017-01-22
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多