如何使用Python从命令行读取文件?
为了使用Python从命令行读取文件,您需要编写一个可以接受CLI参数的Python脚本。例如,假设您想要编写一个Python版的cat命令(将文件内容全部输出到终端上),您可以编写以下程序:
import sys
with open(sys.argv[1], 'r') as f:
contents = f.read()
print contents
如果您将此文件保存为cat.py并使用以下命令运行它:
$ python cat.py my_file.txt
这将把my_file.txt传递给cat.py作为CLI参数的argv[1]变量(第二个命令行参数),我们可以使用它来获取文件及其内容。
阅读更多:Python 教程
使用Python从命令行读取文件
您可以通过将文件名作为参数传递给Python脚本来从命令行读取文件。然后,您可以使用open()
函数打开该文件并读取其内容。
例子
假设您有一个名为example.txt
的文件,并希望从命令行中读取其内容。您可以创建一个名为read_file.py
的Python脚本,并将文件名作为参数传递:
在这里,我们使用了sys.argv
列表获取命令行中的文件名。使用open()
函数打开文件并读取其内容,然后使用print()
函数将其打印到终端上。
需要注意的是,您也可以使用其他文件模式与open()
函数一同使用,例如用于二进制文件的'rb'
或用于在文件中写入的'w'
。
import sys
# 从命令行中获取文件名
filename = sys.argv[1]
# 打开文件并读取其内容
with open(filename, 'r') as f:
contents = f.read()
print(contents)
将此脚本保存到名为read_file.py
的文件中。然后,您可以像这样从命令行中运行该脚本:
python read_file.py example.txt
这将打开名为example.txt
的文件并将其内容打印到终端上。
输出
This is an example file.
It contains some text.
使用命令行参数读取文本文件
例子
在此示例中,我们使用sys.argv
变量获取作为第一个命令行参数传递的文件名。然后,我们使用open()
函数打开文件进行读取,并使用read()
方法读取整个文件的内容,并将其打印到控制台上。
import sys
# 从命令行参数中获取文件名
filename = sys.argv[1]
# 打开文件进行读取
with open(filename, 'r') as file:
# 读取整个文件的内容
contents = file.read()
print(contents)
使用命令行参数读取CSV文件
例子
在此示例中,我们使用csv.reader()
函数创建了一个CSV reader对象,然后使用它来循环遍历CSV文件中的每一行,并将其打印到控制台上。
假设我们有一个名为data.csv
的CSV文件,其内容如下:
Name,Age,Gender
Alice,25,Female
Bob,30,Male
Charlie,40,Male
我们可以使用Python中的csv
模块来读取此文件并打印其内容:
import csv
import sys
# 从命令行参数中获取文件名
filename = sys.argv[1]
# 打开文件进行读取
with open(filename, 'r') as file:
# 创建CSV读取器对象
reader = csv.reader(file)
# 循环遍历CSV文件中的每一行
for row in reader:
# 将行打印到控制台
print(row)
使用命令行参数读取并打印文本文件的内容
例如
import sys
# 从命令行中读取文件名
filename = sys.argv[1]
# 打开文件并读取其内容
with open(filename, 'r') as file:
contents = file.read()
# 打印文件的内容
print(contents)
使用命令行参数写入文件的内容
例如
import sys
# 从命令行中读取文件名和内容
filename = sys.argv[1]
contents = sys.argv[2]
# 打开文件并将内容写入文件
with open(filename, 'w') as file:
file.write(contents)
# 打印成功信息
print(f"成功将'{contents}'写入到'{filename}'")