大家好
我想要做一個 Python3 的程式 ,介面是用PyQt5
主要是軟體安裝很多文件都要手動更改
所以想在一個介面上把要改的資料一次輸入好然後直接取代範本中的資料
我的做法:
將介面上輸入一些資料(ex:使用者、ip...等等)存進變數裡
然後用這些變數去取代原本的範例資料
但是在取代的程式碼一直沒辦法使用
出現 'Can't convert 'NoneType' object to str implicitly'
以下是我寫的程式(擷取出現問題的地方)
if platform.system() == 'Windows':
zPath = os.path.join('F:\\','ezplan')
else:
Path = os.path.join('F','ezplan')
ip = self.lineEdit_ip.setText("") ←介面輸入ip會在這行存成變數
f=open(os.path.join(Path,'a.txt'),'r+')
flist=f.readlines()
flist[0]= 'IP: '+ip ←這行出現問題
f=open(os.path.join(Path,'a.txt'),'w+')
f.writelines(flist)
f.close()
想要請問是我的用法用錯了嗎?
還是有其他方式可以達到我的目的
底下的部分是可以執行的
dirName = QFileDialog.getExistingDirectory(self,self.tr('Select Path'))
↑↑將選取的路徑存成變數
f=open(os.path.join(Path,'Ma.txt'),'r+')
flist=f.readlines()
flist[0]= dirName+'\n'
f=open(os.path.join(Path,'Ma.txt'),'w+')
f.writelines(flist)
f.close()
'原
ip = self.lineEdit_ip.setText("")
'改成
ip = str(self.lineEdit_IP.text())
'看看
ip = self.lineEdit_ip.setText("") 這行沒有值,請debug一下看看這段有沒有值進來!!
我試過 ip = self.lineEdit_ip.setText("0.0.0.0")
結果還是一樣
那有Debug嗎?出現的ip值是?
竟然都是 None ! (連設 0.0.0.0 也是)
我原本預設是空的
要藉由輸入IP存入ip這個變數
你可以直接下 ip = "0.0.0.0" 嗎? 方便把debug 圖貼上來嗎?
$ python3 plan_mainwindow.py
None
Traceback (most recent call last):
File "plan_mainwindow.py", line 96, in <module>
myform = MyForm()
File "plan_mainwindow.py", line 20, in __init__
self.SetIP()
File "plan_mainwindow.py", line 63, in SetIP
flist[0]= 'IP: '+ip
TypeError: Can't convert 'NoneType' object to str implicitly
如果設ip='0.0.0.0'的話
可以執行程式
但是就不是我預期的結果
他會將0.0.0.0的資料直接修改
0.0.0.0是我隨便給的,你當然可以套上其他的網址或是抓你目前使用的ip,我的目的主要是要讓你知道,你的問題再於格式給錯了!!
感謝你QQ
那請問要如何改才能變成將我輸入的資料存入文件呢?
self.lineEdit_ip 你這段我未見到宣告所以你的格式我就不得而知.
若ip = "111.111.111.111" 可以的話那你就要從self.lineEdit_ip去看看你宣告的格式.
海綿寶寶有提供轉換字串用法了唷!!
以下是技術文章連結請多加利用.
http://ithelp.ithome.com.tw/articles/10056425
http://ithelp.ithome.com.tw/articles/10158116
http://ithelp.ithome.com.tw/articles/10158196
self.lineEdit_ip.setText()
你確定有return值嗎?
setText 是一開始的設定值
我改成 self.lineEdit_ip.text()
了 這是抓輸入的值
lineEdit_ip 宣告的格式是? 你目前參考的書籍是?
我是用pyqt5 但是現在沒有pyqy5的書
所以參考pyqt4 和一些qt5的書
http://doc.qt.io/qt-4.8/qlineedit.html#text-prop