我在下面的代碼中遇到以下問題,請提供有關哪裏出錯的信息?文件操作失敗
change_ignore_base.txt和change_ignore_file.txt沒有被創建,哪裏出錯了?
我看到chagne_ignore有附加的「\ r」和「\ n」,什麼是剝離它們並將它們放入一個變量,然後可以用於搜索的聰明方法。
change_ids.txt
206061
150362
147117
147441
143446
200912
change_ignore.txt
150362
147117
147441
143446
200914
代碼
import os
import subprocess
from subprocess import check_call
def sync (base_change):
# open a file
with open('change_ignore.txt') as f:
change_ignore = f.readlines()
print "change_ignore"
print change_ignore
with open('change_ids.txt') as f:
lines = f.readlines()
for line in lines:
line=line.strip()
print line
if line <= base_change:
print "IN line<=base_change"
print line
with open("change_ignore_base.txt", "a") as myfile:
myfile.write(line)
if line in change_ignore:
print "IN change_ignore"
print line
with open("change_ignore_file.txt", "a") as myfile:
myfile.write("line")
if line > base_change and line not in change_ignore:
pass
def main():
base_change=200913
sync(base_change)
if __name__ == '__main__':
main()
猜你的條件不具備。您可能想要將整數與整數進行比較。順便說一句,你可以使用「在f.readlines()中的行」,或者甚至可以使用「在f中的行」。 – monkut
@monkut - 是的,條件是失敗的,可以清楚地看到,因爲打印語句不打印...需要somehelp找出它出錯的地方 – user1927396
當你從文件中讀取一行時,它是默認的以字符串形式閱讀。你想確保如果你需要將它與一個int比較,比如說200913,那麼你需要將輸入行轉換爲int。 – monkut