【发布时间】:2018-10-14 18:20:10
【问题描述】:
我正在编写一个脚本来检查两个文件之间的 ID 重叠,并且在 Windows 中,它能够从 {ID:filepath} 的字典中输出 ID 列表的文件路径。但是,在我的 Linux 服务器中,没有输出。
CELs=[]
CELpaths = {}
f=open(sys.argv[1], 'r')
data = f.read()
lines = data.split('\n')[1:-1]
for line in lines:
tabs = line.split('\\')
CELs.append(tabs[-1])
CELpaths[(tabs[-1])]=line
yyid = []
f2=open(sys.argv[2], 'r')
data2=f2.read()
lines2=data2.split('\n')
for x in lines2:
yyid.append(x)
for c in yyid:
if c in CELpaths:
print (CELpaths[c])
问题肯定出在“for c in yyid:”部分,我的 Linux 服务器上的 Python 无法执行“if c in CELs:”这一行。我的 Linux 运行的是 Python 2.7,而我的 Windows 运行的是 Python 3。这仅仅是版本问题吗?有没有办法修复语法以允许在我的 Linux 上输出?
谢谢!
【问题讨论】:
-
输入文件的行尾在 Windows 和 Linux 上是否一致?在 Linux 上,也许尝试使用 '\r' 而不是 '\n'?
-
你的问题是不是 Windows 和 Linux 的路径分隔符不同造成的?我看到
line.split('\\'),反斜杠是特定于 Windows 的。 -
@user1451348 谢谢,\r 正是我所需要的!