質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

6861閲覧

なぜか謎のエラーが出てしまう

Picmin3daisuki

総合スコア11

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/12 12:55

発生している問題・エラーメッセージ

line 49, in <module> with open(name,encoding='UTF-8') as file: TypeError: open() missing required argument 'flags' (pos 2)

該当のソースコード

Python

1from math import * 2from os import * 3 4x=[] 5y=[] 6 7def 平均(x): 8 a=0 9 for n in x: 10 a+=n 11 a/=len(x) 12 return a 13 14def 標準偏差(x): 15 xa=平均(x) 16 for n in x: 17 a+=(n-xa)**2 18 a=sqrt(a/len(x)) 19 return a 20 21def 共分散(x,y): 22 if len(x)==len(y): 23 xa=平均(x) 24 ya=平均(y) 25 for n in range(0,len(x)): 26 a+=(x[n]-xa)*(y[n]-ya) 27 a/=len(x) 28 return a 29 else: 30 return '2つのファイルのデータ数が違います' 31 32def 相関係数(x,y): 33 if len(x)==len(y): 34 a=共分散(x,y)/(標準偏差(x)*標準偏差(y)) 35 return a 36 else: 37 return '2つのファイルのデータ数が違います' 38 39print('計算アプリにようこそ!') 40print('ここではファイルの中に入っている情報を使っていろいろなものを求められます') 41print('今できること:平均,標準偏差,共分散,相関係数,やめる') 42while True: 43 do=input('求めたいことを入れてね>>') 44 if do=='平均' or do=='標準偏差' or do=='共分散' or do=='相関係数' or do=='やめる': 45 break 46while not do=='やめる': 47 name=input('ファイル名を入れてね>>') 48 if path.exists(name): 49 with open(name,encoding='UTF-8') as file: 50 for data in file: 51 data=data.rstrip('\n') 52 x.append(int(data)) 53 break 54 else: 55 print('ファイルが見つけられません') 56while do=='共分散' or do=='標準偏差': 57 name=input('ファイル名を入れてね>>') 58 if path.exists(name): 59 with open(name,encoding='UTF-8') as file: 60 for data in file: 61 data=data.rstrip('\n') 62 y.append(int(data)) 63 break 64 else: 65 print('ファイルが見つけられません') 66 67if do=='平均': 68 print(str(平均(x))) 69if do=='標準偏差': 70 print(str(標準偏差(x))) 71if do=='共分散': 72 print(str(共分散(x,y))) 73if do=='相関係数': 74 print(str(相関係数(x,y))) 75print('アプリを終了します') 76

試したこと

別のファイル名をいれてみたり、求めることに別のを入れてみたりした

補足情報(FW/ツールのバージョンなど)

Python 3.7.7 64bit

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ファイルで モジュール os の全て(*)をインポートしてしまっているため、あなたのコードで呼ばれるopenが、標準のopen()ではなく、os.open() になってしまったのが原因です。

os.open の仕様は以下で確認できるとおり、2番目の引数として、flag という値を必要としています。

os.openの説明

モジュール osの全てをインポートするのをやめるのがお勧めです。pep8でも推奨されていません

投稿2020/09/12 13:06

編集2020/09/12 13:27
TakaiY

総合スコア13790

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問