Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでファイルシステムを設計する


これら2つの機能を提供するファイルシステムを設計する必要があるとします-

  1. createPath(path、value)-これにより、新しいパスが作成され、可能であればそれに値が関連付けられ、Trueが返されます。パスがすでに存在する場合、またはその親パスが存在しない場合は、Falseを返します。
  2. get(path)-これは、パスに関連付けられている値を検索するか、パスが存在しない場合は-1を返します。

パスの形式は、-(スラッシュ)/の後に続く1つ以上の小文字の英字の形式の1つ以上の連結文字列です。たとえば、/programmingと/programming / problemsは有効なパスですが、空の文字列と/は有効なパスではありません。ここでは、これら2つの機能を実装する必要があります。

したがって、入力として、ファイルシステムを作成し、['/ a'、1]を使用してパスを作成し、get()を使用した後、パラメーター['/ a']を使用すると、出力は1になります。

これを解決するには、次の手順に従います-

  • マップを定義するd
  • createPathメソッドはパスと値を取ります。これは、-
  • のように機能します。
  • p:=「/」で分割されたパスのコンポーネントのリスト
  • x:=d
  • 範囲1からp–1の長さのiの場合
    • p [i]がxに存在しない場合は、falseを返します
    • x:=x [p [i]] [1]
  • pの最後の要素がxにある場合は、falseを返します
  • x [pの最後の要素]:=vと空のマップを含むリスト
  • trueを返す
  • get()メソッドがパスを取っています
  • x:=d
  • p:=「/」で分割されたパスのコンポーネントのリスト
  • 範囲1からp–1の長さのiの場合
    • p [i]がxに存在しない場合は、-1を返します
    • x:=x [p [i]] [1]
  • pの最後の要素がxにある場合は、x[pの最後の要素][0]を返します。それ以外の場合は、-1を返します。
例(Python)

理解を深めるために、次の実装を見てみましょう-

class FileSystem(object):
   def __init__(self):
      self.d = {}
   def create(self, p, v):
      p = p.split("/")
      x = self.d
      for i in range(1,len(p)-1):
         if p[i] not in x:
            return False
         x = x[p[i]][1]
      if p[-1] in x:
         return False
      x[p[-1]] = [v,{}]
      return True
   def get(self, p):
      x = self.d
      p = p.split("/")
      for i in range(1,len(p)-1):
         if p[i] not in x:
            return -1
         x= x[p[i]][1]
      if p[-1] in x:
         return x[p[-1]][0]
      else:
         return -1
ob = FileSystem()
print(ob.create("/a", 1))
print(ob.get("/a"))

入力

Initialize the object, then call createPath(“/a”, 1) and get(“/a”)

出力

True
1

  1. Pythonのファイルオブジェクト?

    Pythonでは、ファイルの読み取りまたは書き込みを試みるたびに、ライブラリがネイティブに処理されるため、ライブラリをインポートする必要はありません。 最初に行うことは、組み込みのopen関数を使用してファイルオブジェクトを取得することです。 open関数はファイルを開き、ファイルオブジェクトを返します。ファイルオブジェクトには、情報を取得したり、開いたファイルを操作したりするために使用できるメソッドと属性が含まれています。 ファイルとは何ですか? ファイルに対して操作を行う前に、まずファイルとは何かを理解しましょう。ファイルは、関連情報を保存するためのディスク上の名前付きの場所です。フ

  2. Pythonのジャンクファイルオーガナイザー?

    これは、ほとんどのファイルとフォルダーを1つの場所に保持し、すべてのファイルが何であるか混乱することがあり、手動でそれを行うには怠惰すぎるPythonプログラマーにとって非常に役立つように思われるかもしれません。以下は、適切なフォルダ内のすべてを1回で整理または簡略化して、空のディレクトリを削除するPythonプログラムです。 したがって、さまざまなタイプのファイルが多数存在するディレクトリパスがあり(以下のように)、プログラムは各ファイルタイプをそれぞれのフォルダに分離します(以下のように)。 入力フォルダの構造 必要な出力 まず、さまざまなフォルダに分離するファイル