2015-08-08 59 views
-2

請你怎麼輸出數據在列新的或現有的文件,我試圖創建一個列表,並使用.append()的變量,但沒有奏效 數據是爲了看起來像:如何輸出選項卡以特定的格式delimated文件

ABC. DEF. GHI. JKL. 

這裏是我到目前爲止的代碼:

try: 
    first_input = raw_input('Enter Filename:') 
    data = first_input 
    openfile = open(data,'r') 
    openfile = open(data,'a') 
    author = raw_input('Enter Author Name:') 
    title = raw_input('Enter Title Name:') 
    year= raw_input('Enter year:') 
    Journal = raw_input('Enter Journal:') 
except IOError: 
    openfile = open(data,'a') 
    author = raw_input('Enter Author Name:') 
    title = raw_input('Enter Title Name:') 
    year= raw_input('Enter year:') 
    Journal = raw_input('Enter Journal:) 

輸出應該製表符分隔的,看起來像:

author. title. year. journal with the '.' 

回答

1

你只需要使用CSV模塊,指定分隔符與delimiter="\t"一個tab並添加到每條串:

import csv 
first_input = raw_input('Enter Filename:') 
data = first_input 
author = raw_input('Enter Author Name:') 
title = raw_input('Enter Title Name:') 
year= raw_input('Enter year:') 
Journal = raw_input('Enter Journal:') 

with open(data,"a") as f: 
    wr = csv.writer(f,delimiter="\t") 
    wr.writerow([author+".",title+".",year+".",Journal+"."]) 

輸入:

Enter Filename:test.csv 
Enter Author Name:foo 
Enter Title Name:foobar 
Enter year:2015 
Enter Journal:foobar 

test.csv:

foo. foobar. 2015. foobar. 
0

我不明白你想要什麼, 但讓我看看。 打開並寫入文件(或追加現有)在open()函數中使用'a'參數。

with open('filename.txt', 'a') as my_file: 
    my_file.write('anything you want as string') 
my_file.close() 

另一點就是要有字符串包含由製表符分隔值的:用文件流工作時,應與建築使用

val_1 = 'Name' 
val_2 = 'Age' 
val_3 = 'Yes' 

首先,你需要創建一個列表,並獲得此值列表成員(而不是將其分配給字符串變量):

my_list = [] 
my_list.append('Name') 
my_list.append('Age') 
my_list.append('Yes') 

事後創建列表刺痛,表示要與標籤單獨值:

'\t'.join(my_list) 

這將創造刺痛:「姓名年齡是」

結合這方面的知識,使自己的代碼。不要猶豫,用更多的資源,以獲得更多信息:http://www.tutorialspoint.com/python/python_lists.htm

+0

你在一個不正確的方式創建'my_list'。我也認爲你有一個錯字:'may_list'。 –

+0

爲什麼這是不正確的?也許我不夠清楚,我的意思是賦值給列表成員而不是字符串變量。 my_list [0] = raw_input('enter value') – Ami00

+0

您是否嘗試過運行代碼?我收到「IndexError:列表分配索引超出範圍」。 –

相關問題