2011-12-17 28 views
5

Làm cách nào để in tất cả các đối số được chuyển đến tập lệnh python?Làm cách nào để in tất cả các đối số được chuyển đến tập lệnh python?

Đây là những gì tôi đã cố gắng:

#!/usr/bin/python 
print(sys.argv[1:]); 

cập nhật

Làm thế nào tôi có thể lưu chúng vào một tập tin?

#!/usr/bin/python 
import sys 
print sys.argv[1:] 
file = open("/tmp/test.txt", "w") 
file.write(sys.argv[1:]) 

tôi nhận được

TypeError: expected a character buffer object 
+3

Thay vì nói "này không làm việc", dành thời gian để tìm hiểu lý do tại sao * * nó "không hoạt động". Điều này bao gồm những thứ như đọc - * và đăng * - thông báo lỗi/triệu chứng. –

Trả lời

23

Bạn sẽ cần phải import sys cho rằng để làm việc.

#!/usr/bin/python 

import sys 
print sys.argv[1:] 

Ví dụ

:/tmp% cat foo.py 
#!/usr/bin/python 

import sys 
print (sys.argv[1:]); 

:/tmp% python foo.py 'hello world' arg3 arg4 arg5 
['hello world', 'arg3', 'arg4', 'arg5'] 
2

dòng cuối cùng của bạn là sai.

Nó nên là:

file.writelines(sys.argv[1:]) 
2

vấn đề là với danh sách các args rằng viết không thể xử lý.

Bạn có thể muốn sử dụng:

file.write('\n'.join(sys.argv[1:])) 
Các vấn đề liên quan