gpt4 book ai didi

python - 在 Windows 和 Linux 中读取具有相对 url 的文件夹中的所有文件

转载 作者:行者123 更新时间:2023-12-01 07:23:46 25 4
gpt4 key购买 nike

我可以使用下面的相对路径读取 csv。

import pandas as pd
file_path = './Data Set/part-0000.csv'
df = pd.read_csv(file_path )

但是当有多个文件时,我使用的是glob,文件路径与正斜杠和反斜杠混合。因此由于路径错误而无法读取文件。

allPaths = glob.glob(path)

path = "./Data Set/UserIdToUrl/*"的文件路径如下所示

"./Data Set/UserIdToUrl\\part-0000.csv"

path = ".\\Data Set\\UserIdToUrl\\*"的文件路径如下所示

".\\Data Set\\UserIdToUrl\\part-0000.csv"

如果我使用

normalPath = os.path.normpath(path)

normalPath 缺少相对的 ./.\\,如下所示。'数据集\UserIdToUrl\part-00000.csv'

下面可以工作,使它在 Windows 和 Linux 中都工作的最佳方法是什么?

".\\Data Set\\UserIdToUrl\\part-0000.csv"
or
"./Data Set/UserIdToUrl/part-0000.csv"

如果有的话,请提出澄清问题。预先感谢您的评论和回答。

更多信息:我猜这个问题只存在于windows中,而不是linux中。下面是显示问题的最短程序。考虑路径 './Data Set/UserIdToUrl/*' 中有文件,并且它是正确的,因为当我直接向 pd.read_csv('./Data Set/UserIdToUrl/filename.csv) 提供文件路径时可以读取文件').

import os
import glob
import pandas as pd

path = "./Data Set/UserIdToUrl/*"
allFiles = glob.glob(path)

np_array_list = []
for file_ in allFiles:
normalPath = os.path.normpath(file_)
print(file_)
print(normalPath)
df = pd.read_csv(file_,index_col=None, header=0)
np_array_list.append(df.as_matrix())

更新2

我刚刚用谷歌搜索了 glob 库。它的定义是“glob — Unix 风格的路径名模式扩展”。我想,我需要一些可以在 UNIX 和 Windows 中工作的实用函数。

最佳答案

你可以使用abspath

for file in os.listdir(os.path.abspath('./Data Set/')): 
...: if file.endswith('.csv'):
...: df = pandas.read_csv(os.path.abspath(file))

关于python - 在 Windows 和 Linux 中读取具有相对 url 的文件夹中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57554263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com