![](/img/trans.png)
[英]i got Python: FileNotFoundError: [Errno 2] No such file or directory
[英]Why FileNotFoundError: [Errno 2] No such file or directory if I do have it in Python?
運行代碼后出現此錯誤:
Traceback (most recent call last):
File "/home/ubuntu/new.py", line 57, in <module>
transform_data_into_csv(n_files=20, filename='data.csv')
File "/home/ubuntu/new.py", line 32, in transform_data_into_csv
files = sorted(os.listdir(parent_folder), reverse=True)
FileNotFoundError: [Errno 2] No such file or directory: 'app/raw_files'
你能幫我找出我得到它的原因嗎? 我檢查了,我確實有這個文件夾和文件。 我在第一個函數中創建它。 我想從第一個函數中讀取 json 信息。
import datetime
import os
import requests
import json
def getting_weather():
api_key = 'XXX'
cities = ['paris', 'london', 'washington']
filepath = 'app/raw_files'
if os.path.exists(filepath) == False:
os.makedirs(filepath, mode = 511, exist_ok= False)
os.chdir(filepath)
json_cities = []
for city_name in cities:
r = requests.get('http://api.openweathermap.org/data/2.5/weather?q={city_name}&appid={API_key}'.format(city_name=city_name,API_key=api_key))
filename = datetime.datetime.today().strftime('%Y-%m-%d %H:%M')+'.json'
output = '{text}'.format(text=r.json())
json_cities.append(output)
with open(filename, 'a') as file:
file.write(json.dumps(json_cities))
getting_weather()
def transform_data_into_csv(n_files=None, filename='data.csv'):
parent_folder = '/app/raw_files'
files = sorted(os.listdir(parent_folder), reverse=True)
if n_files:
files = files[:n_files]
dfs = []
for f in files:
with open(os.path.join(parent_folder, f), 'r') as file:
data_temp = json.load(file)
for data_city in data_temp:
dfs.append(
{
'temperature': data_city['main']['temp'],
'city': data_city['name'],
'pression': data_city['main']['pressure'],
'date': f.split('.')[0]
}
)
df = pd.DataFrame(dfs)
print('\n', df.head(10))
df.to_csv(os.path.join('/app/clean_data', filename), index=False)
transform_data_into_csv(n_files=20, filename='data.csv')
對不起,長代碼。 謝謝你的閱讀。 此致
您的parent_folder
是絕對路徑的形式。
嘗試將其更改為'app/raw_files'
或'./app/raw_files'
而不是'/app/raw_files'
。
更改此行
parent_folder = '/app/raw_files'
至
parent_folder = 'app/raw_files'
因為您使用了正斜杠,所以它會the folder given before the slash
夾中查找文件夾app
。
而且,由於斜線之前沒有文件夾。 因此代碼不起作用。
謝謝你。 希望有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.