2017-02-09 8 views
1

私はWindows 7 Pro SP1でPython 2.7を使用します。読み書きtxtファイルエラー - 'str'オブジェクトに属性 'name'がありません。パスエラーの弁別文字を修復します

私はコードを試してみてください。

import os 
path = "E:/data/keyword" 
os.chdir(path) 

files = os.listdir(path) 
query = "{keyword} AND NOT(" 
result = open("query.txt", "w") 

for file in files: 
    if file.endswith(".txt"): 
     file_path = file.name 
     dane = open(file_path, "r") 
     query.append(dane) 
     result.append(" OR ") 

result.write(query) 
result.write(")") 
result.close() 

私はエラーを取得する:

file_path = file.name AttributeError: 'str' object has no attribute 'name'

私はなぜ理解することはできません。

パスに "ąęłńóżć"のようなポリッシュの弁別文字がある場合、私はセコンエラーがあります。私はエラーを取得する:

path = "E:/Bieżące projekty/keyword" 

私はそれを修正してみてください。

path =u"E:/Bieżące projekty/keyword" 

が、それは助けません。私はPythonを使い始めています。なぜこのコードが動作していないのかわかりません。私は

  1. は、ディレクトリ内のすべてのテキストファイルを検索したい何

  2. "query.txt"

FXという名前のファイルのテキスト内のすべてのテキストファイルに参加します。

ファイル1 DATA1データ2

"query.txt" からファイル2つの データ3つのデータ4

出力:パス変数3つのデータ4

答えて

0

上記のコード DATA1のDATA2のデータが正常に動作弁証的な文字を磨くことはありません。パスを変更すると、エラーが表示されます。

SyntaXError: Non-ASCII character '\xc5' in file query.py on line 9, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 

私は魔法の言葉を見つける。 "ąęłńóźżć"のようなポーランド語のラングコーディング文字はISO-8859-2です。だから私はコードにエンコーディングを追加しようとします。私もUTF-8を試してみると同じエラーが出ます。私のすべてのコードは、(コメントどのようなコードがやっと5つの最初のラインなし)です:私が見つけたUnicode/UTF-8文字here

import os 
#path = r"E:/data" 
# -*- coding: iso-8859-2 -*- 
path = r"E:/Bieżące przedsięwzięcia" 
os.chdir(path) 

files = os.listdir(path) 
query = "{keyword} AND NOT(" 

for file in files: 
    if file.endswith(".txt"): 
     dane = open(file, "r") 
     text = dane.read() 
     query += text 
     print(query) 
     dane.close() 
     query.join(" OR ") 
result = open("query.txt", "w") 
result.write(query) 
result.write(")") 
result.close() 

そのポリッシュ文字「Z」\」としてUTF-8でコード化された\ XC5 xbc "とする。コメントに "ż"を付けたパスのコーディング行に#を付けるとエラーになります。このcharコードで行を削除すると、次のようになります。

path = r"E:/Bieżące przedsięwzięcia" 

うまくいきたい結果が得られます。

私はメモ帳++をデフォルトの設定で使用します。私は4つのスペースで置き換えるPythonのコードタブでのみ設定します。

*

2番目の質問

私はどういう意味R変数パスにPythonのドキュメントで見つけるしてみてください。私はPython 2.7文字列のドキュメントでそれを見つけることができません。誰かが、Pythonのこの部分(文字列の値の前のu、rのような)がfxという名前になっていることを教えてもらえますか?

パス= U "someDataが"

パス= R "someDataが"?

私はそれについて読むためにdocを得るでしょう。

関連する問題