os.path.join
とWindowsシステムに問題があります。構造化されていないJSONデータを含むファイルを再帰的に読み込み、 "converted_json"という名前のディレクトリを作成し、構造化形式の各非構造化JSONファイルの内容を "converted_json"ディレクトリ内の新しいファイルに出力するスクリプトを作成しました。os.path.join issue Windows
以下のスクリプトをmacOSでテストしたところ、実行時に構造化JSONデータが新しいファイルに出力され、新しいファイルが "converted_json"ディレクトリに出力されました。しかし、Windowsシステムでスクリプトを実行すると、JSONデータが新しいファイルに出力されますが、ファイルは "converted_json"ディレクトリに出力されません。基本的に
、次os.path.joi
n個のコードは次のセクションでは、Windows上で動作しているように表示されません。しかし、彼らが指定されている「converted_json」ディレクトリ内に格納されていない、ファイルが作成されます
conv_json = open(os.path.join(converted_dir, str(file_name[-1]) + '_converted'), 'wb')
converted_dir変数で指定します。
オープンファイル 'C:\ Users \ユーザーテスト\デスクトップ\テスト\ file_name.json.gz.json_converted'、モード 'WB' 0x0000000002617930をで
次の出力が "conv_json" 変数を印刷するからです上記から分かるように
、変数「converted_json」ディレクトリが含まれていません「conv_json」内に含まれるファイルパス(それはos.path.joinとconverted_dir変数を使用してそこからあるべきである。
任意構造化されたデータを "converted_json"に出力する方法に関する支援"ディレクトリは非常に高く評価されるだろう。
以下のコード:
file_name = str.split(file.name, '/')
'/' で分割が全く分割しないでしょう。
argparser = argparse.ArgumentParser()
argparser.add_argument('-d', '--d', dest='dir_path', type=str, default=None, required=True, help='Directory path to Archive/JSON files')
args = argparser.parse_args()
dir_path = args.dir_path
converted_dir = os.path.join(dir_path, 'converted_json')
os.mkdir(converted_dir, 0777)
for subdir1, dirs1, files1 in os.walk(dir_path):
for file in files1:
try:
if file.endswith(".json"):
file = open(os.path.join(subdir1, file))
file_name = str.split(file.name, '/')
conv_json = open(os.path.join(converted_dir, str(file_name[-1]) + '_converted'), 'wb')
conv_json.write('#################################################################################################################################')
conv_json.write('\n')
conv_json.write('File Name: ' + file_name[-1])
conv_json.write('\n')
conv_json.write('#################################################################################################################################')
conv_json.write('\n')
parsed_json = json.load(file)
s = cStringIO.StringIO()
pprint.pprint(parsed_json, s)
conv_json.write(s.getvalue())
conv_json.close()
except:
print 'JSON Files Not Found'
print 'JSON Processing Completed: ' + str(datetime.datetime.now())
お返事ありがとうございます、私はあなたの提案を検討します。ありがとう! – user8685438