我想要做的是讓我的程式從目錄中隨機選擇一個檔案夾并讀取其中的 slot.csv 檔案。所有檔案夾都有slots.csv檔案,只是檔案夾的命名不同。我知道如何使用,random.choice(os.listdir("C:\\"))但我似乎無法讓它與檔案夾一起作業......
import os, random
random_centre = random.choice(os.listdir("Centres" "\\" postcode))
df = pandas.read_csv(r"Centres" "\\" postcode "\\" random_centre "\\" "slots.csv")
我不斷收到同樣的錯誤,
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'Centres\\31400'
uj5u.com熱心網友回復:
我沒有 Pandas,所以這里有一個使用 Python 的 CSV 模塊的模型。
我的第一個建議是os.path.join()用于組裝您的路徑。即使我在 Mac 上,此代碼也應該在您的 Windows 機器上運行,因為該join()方法在選擇路徑分隔符時會考慮作業系統。這可能不是您的問題,但它會使您的代碼更簡潔。
至于隨機問題,您的代碼看起來應該可以作業:
import csv
import os
import random
postcode = '12345'
base_path = os.path.join('Centres', postcode)
random_centre = random.choice(os.listdir(base_path))
csv_path = os.path.join(base_path, random_centre, 'slots.csv')
with open(csv_path, newline='') as f:
reader = csv.reader(f)
print(csv_path)
print(list(reader))
這是我運行幾次時的樣子:
% ./main.py
Centres/12345/b/slots.csv
[['Col1', 'Col2'], ['Val1', 'Val2']]
% ./main.py
Centres/12345/a/slots.csv
[['Col1', 'Col2'], ['Val3', 'Val4']]
% ./main.py
Centres/12345/a/slots.csv
[['Col1', 'Col2'], ['Val3', 'Val4']]
% ./main.py
Centres/12345/b/slots.csv
[['Col1', 'Col2'], ['Val1', 'Val2']]
% ./main.py
Centres/12345/a/slots.csv
[['Col1', 'Col2'], ['Val3', 'Val4']]
% ./main.py
Centres/12345/c/slots.csv
[['Col1', 'Col2'], ['Val5', 'Val6']]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/399120.html
上一篇:清理資料并將其轉換為數字熊貓
