2014-09-28 89 views
1

我想將輸出保存爲我的系統上的文本文件。輸出文件的名稱應該在命令提示符下從用戶處獲得。如何將輸出保存爲.txt文件?

output = input("Enter a name for output file:")  

    my_file = open('/output.txt', "w") 

    for i in range(1, 10): 
     my_file.write(i) 

這是正確的做法?

+0

現在你正在寫一個字面名爲'output.txt'的文件。如果你想使用用戶的輸入作爲文件名,你必須將'output +'.txt''傳遞給'open'函數。 – 2014-09-28 05:41:54

回答

1

你可以做到以下幾點:

import os 

# you can use input() if it's python 3 
output = raw_input("Enter a name for output file:") 

with open("{}\{}.txt".format(os.path.dirname(os.path.abspath(__file__)), output), "w") as my_file: 
    for i in range(1, 10): 
     my_file.write("".format(i)) 

在這個例子中,我們使用的是本地路徑使用os.path.dirname(os.path.abspath(__file__))我們將獲得當前的路徑,我們將它添加output.txt

  1. 閱讀更多關於abspath()外觀here

  2. 查看更多關於外觀的信息here

  3. write方法在你的情況下會引發TypeError因爲i需要一個string

+0

向下選舉人你能解釋你的倒票嗎所以我可以改善答案? – 2014-10-01 05:35:04

2

做這樣

output = raw_input("Enter a name for output file:")  
my_file = open(output + '.txt', "w") 
for i in range(1, 10): 
    my_file.write(str(i)) 
+0

它不會工作,因爲TypeError會在'write'方法中產生,所以你需要寫str。 – 2014-09-28 05:56:29

0

所以一些改動我做了。您需要執行以下操作:

output + '.txt' 

使用變量輸出作爲文件名。

除此之外,你需要通過調用STR()函數對整數i轉換爲字符串:

str(i) 

監守寫功能隻字符串作爲輸入。

下面是代碼一起:

output = raw_input("Enter a name for output file: ")  

    my_file = open(output + '.txt', 'wb') 

    for i in range(1, 10): 
     my_file.write(str(i)) 

    my_file.close() 

希望這有助於!

0

你能做到在同一行,所以你將有你的txt文件在你.py文件路徑:

my_file=open('{}.txt'.format(input('enter your name:')),'w') 
for i in range(1, 10): 
    my_file.write(str(i)) 
my_file.close() 

注:如果您使用python 2.x使用raw_input()代替input

相關問題