我在下面的代码中遇到以下问题,请提供有关哪里出错的信息?文件操作失败
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