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

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

新規登録して質問してみよう
ただいま回答率
85.48%
SikuliX

SikuliXは、画像認識を用いた自動化ツール。テスト作業自動化やRPAツールとして利用できます。OpenCVを用いてPC上の要素を画像として認識。その画像に対してクリックなどの基本操作を実行できます。また、画像から文字を識別するOCR機能も備わっています。

Python 3.x

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

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

Python

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

Q&A

2回答

1240閲覧

Sikulixでディレクトリに日本語が入っている場合の処理

aomi333

総合スコア1

SikuliX

SikuliXは、画像認識を用いた自動化ツール。テスト作業自動化やRPAツールとして利用できます。OpenCVを用いてPC上の要素を画像として認識。その画像に対してクリックなどの基本操作を実行できます。また、画像から文字を識別するOCR機能も備わっています。

Python 3.x

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

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

Python

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

0グッド

0クリップ

投稿2022/12/27 06:37

編集2022/12/28 00:57

Siklixを使用して、Webページにファイルをアップロードするプログラムを作成しております。

ディレクトリにある最新のファイルを呼び出し、ファイル名を指定することはできたのですが、ディレクトリ(パスにもファイル名にも)日本語が含まれており、
ファイルダイアログにペーストしたときに文字化けしてしまいます。
*SiklixのメッセージViewには文字化けしておりません。

python

1#フォルダ内にある、アップロード用最新ファイルパスを取得する。 2import glob 3import os 4list_of_files = glob.glob(r'\\tyom111\\【Product】03MasterMente\\01Customer\\出力\\顧客コード変換マスタ*.xlsx') 5latest_file = max(list_of_files, key=os.path.getmtime) 6print latest_file 7 8#****************************************** 9#この間にファイル取込ダイアログを表示されるプログラム 10#****************************************** 11 12#ファイル取込ダイアログに最新のファイルパスをペーストする 13paste(latest_file)

イメージ説明

# 12/28追記
ujimushi_sradjpさまに教えていただいたコードを実行した結果のスクショ。
イメージ説明

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

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

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

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

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

guest

回答2

0

Sikulix使いにはわりと有名な情報だと思うのですが,Sikuli UnicodeDecordeErrorへの対処方法のように,

python

1import sys 2reload(sys) 3sys.setdefaultencoding('utf-8')

を先頭に書いて,ファイル名やパスをutf-8で記述するといいと思います。

python

1import sys 2reload(sys) 3sys.setdefaultencoding('utf-8') 4 5#フォルダ内にある、アップロード用最新ファイルパスを取得する。 6import glob 7import os 8list_of_files = glob.glob(u'\\tyom111\\【Product】03MasterMente\\01Customer\\出力\\顧客コード変換マスタ*.xlsx') 9latest_file = max(list_of_files, key=os.path.getmtime) 10print latest_file 11 12#****************************************** 13#この間にファイル取込ダイアログを表示されるプログラム 14#****************************************** 15 16#ファイル取込ダイアログに最新のファイルパスをペーストする 17paste(latest_file)

のような感じでしょうか?

投稿2022/12/27 09:54

ujimushi_sradjp

総合スコア2087

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

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

aomi333

2022/12/28 00:55

ujimashiさま ご回答ありがとうございます。 教えていただきましたコードを追加して、実行してみたのですが、やはり文字化けしてしまいます。 パスの【】文字化けしてますが、パスでは【】などの記号は使わないほうが良いのでしょうか?
ujimushi_sradjp

2022/12/28 10:11

この嘘つきが。 何が「ujimushi様の通りにやってもうまくいかない」や。 8行目grobの行が違うやろ。 私の回答ではu'...'にしてるのに,実行しとるんはr'...'のままやろ。 その証扱に化けた文字列内に「\\」がある。これはr'...'だとエスケープシーケンスが効かず生出力になるからや。 u'...'にしてたらここは「\\」が「\」に変わるんや。 人の言う通りにせんと,そんなにうまくいかんのがいいんやったら勝手にすればええ。
guest

0

動作未検証ですがsikulixで文字化けせずに日本語入力を行う方法が参考になりそうです。
すなわち以下のような感じでglobで得たstr型を(Windows環境であればたぶんcp932で?)unicode型に変換してpasteに渡せばうまくいきそうな気がします。

Python

1import glob 2 3for p in glob.glob('./*.txt'): 4 up = unicode(p, encoding='cp932') 5 print p, type(p) 6 print up, type(up) 7 8""" 9.\temp.txt <type 'str'> 10.\temp.txt <type 'unicode'> 11.\あいう.txt <type 'str'> 12.\あいう.txt <type 'unicode'> 13"""

なおsikulixはP(J)ython2.7にしか対応していないようなので、他にもいろいろと注意が必要そうです。

投稿2022/12/27 06:46

編集2022/12/27 07:35
can110

総合スコア38258

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問