0
# Define the project name and path for input files
# need to use \ before \t and \ to print these characters
Project = "101"
path_Directory =  "C:\Users\\tp\Desktop\project\\"
full_path_Directory = path_Directory + Project

# Set path for files in the program
File_stock = full_path_Directory + "_stock.txt"
File_exchange = full_path_Directory + "_exchange.txt"
File_country = full_path_Directory + "_country.txt"

var_set = [File_stock, File_exchange, File_country]

  for var in var_set:
    var = open(var,'r')
    var = var.read()[3:]
    print var

File_stock、File_exchange、File_country の 3 つの変数を含む var_set を作成しました。繰り返しのタスクをループする方が効率的だと考えたからです。上記のコードの出力は正しいのですが、「print stock」、「print exchange」、または print 「country」と入力すると、テキスト ファイルのデータではなくパス ディレクトリが表示されるため、出力は常に間違っています。 .

何が原因で、どのように修正すればよいか、誰かが知っていますか?

4

1 に答える 1

3

ファイルごとのデータをデータ構造に保存する場合は、 adictまたは類似のものを使用する必要があります。

Project = "101"

path_Directory =  r"C:\Users\tp\Desktop\project"
names = ['stock', 'exchange', 'country']
data = {}

for name in names:
    path = os.path.join(path_Directory, '{0}_{1}.txt'.format(Project, name))
    data[name] = open(path, 'r').read(3)

また、ファイル全体を読み取るのではなく、3 文字だけを読み取るように.read()[:3]置き換えました。.read(3)より効率的です。

data3 つのキーがあり、それぞれが各ファイルから読み取った 3 文字を指しています。

print data['stock']  # prints 'xyz'. etc.
于 2012-12-15T13:11:09.963 に答える